diff options
312 files changed, 6183 insertions, 6334 deletions
diff --git a/callouts/tests/test-dispatcher-envp.c b/callouts/tests/test-dispatcher-envp.c index 8636f09797..354ab2c5b2 100644 --- a/callouts/tests/test-dispatcher-envp.c +++ b/callouts/tests/test-dispatcher-envp.c @@ -30,7 +30,7 @@ #include "nm-utils/nm-test-utils.h" -/*******************************************/ +/*****************************************************************************/ static gboolean parse_main (GKeyFile *kf, @@ -444,7 +444,7 @@ out: return success; } -/*******************************************/ +/*****************************************************************************/ static void test_generic (const char *file, const char *override_vpn_ip_iface) @@ -556,7 +556,7 @@ test_generic (const char *file, const char *override_vpn_ip_iface) g_assert_cmpstr (expected_iface, ==, out_iface); } -/*******************************************/ +/*****************************************************************************/ static void test_up (void) @@ -606,7 +606,7 @@ test_up_empty_vpn_iface (void) test_generic ("dispatcher-up", ""); } -/*******************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/configure.ac b/configure.ac index 34b92d1afe..570aae3984 100644 --- a/configure.ac +++ b/configure.ac @@ -742,48 +742,71 @@ AM_CONDITIONAL(WITH_OFONO, test "${with_ofono}" = "yes") # DHCP client support AC_ARG_WITH([dhclient], AS_HELP_STRING([--with-dhclient=yes|no|path], [Enable dhclient 4.x support])) -AC_ARG_WITH([dhcpcd], AS_HELP_STRING([--with-dhcpcd=yes|no|path], [Enable dhcpcd 4.x support])) -# Default to "yes" -AS_IF([test -z "$with_dhclient"], with_dhclient=yes) -AS_IF([test -z "$with_dhcpcd"], with_dhcpcd=yes) -# Search and check the executables -if test "$with_dhclient" = "yes"; then +if test "$with_dhclient" != "no"; then + with_dhclient_="$with_dhclient" AC_PATH_PROGS(with_dhclient, dhclient, no, /sbin:/usr/sbin:/usr/local/sbin) - if test "$with_dhclient" != "no"; then + if test "$with_dhclient" == "no"; then + if test "$with_dhclient_" == yes; then + AC_MSG_WARN([dhclient not found, assume path /usr/sbin/dhclient]) + with_dhclient=/usr/sbin/dhclient + fi + else if ! $with_dhclient --version 2>&1 | grep -q "^isc-dhclient-4\."; then - AC_MSG_WARN([Cannot use dhclient, version 4.x is required]) - with_dhclient=no + AC_MSG_WARN([Seems version of dhclient $with_dhclient is too old, version 4.x or newer is required.]) fi fi fi -if test "$with_dhcpcd" = "yes"; then +if test "$with_dhclient" != "no"; then + AC_DEFINE(WITH_DHCLIENT, 1, [Define if you have dhclient]) + AC_SUBST(DHCLIENT_PATH, $with_dhclient) +else + AC_DEFINE(WITH_DHCLIENT, 0, [Define if you have dhclient]) +fi + +AC_ARG_WITH([dhcpcd], AS_HELP_STRING([--with-dhcpcd=yes|no|path], [Enable dhcpcd 4.x support])) +AC_ARG_WITH([dhcpcd-supports-ipv6], AS_HELP_STRING([--with-dhcpcd-supports-ipv6=yes|no|auto], [Whether using dhcpcd >= 6.x which has IPv6 support]), [with_dhcpcd_supports_ipv6=$withval], [with_dhcpcd_supports_ipv6=auto]) +if test "$with_dhcpcd" != "no"; then + with_dhcpcd_="$with_dhcpcd" AC_PATH_PROGS(with_dhcpcd, dhcpcd, no, /sbin:/usr/sbin:/usr/local/sbin) - if test "$with_dhcpcd" != "no"; then + if test "$with_dhcpcd" == "no"; then + if test "$with_dhcpcd_" == yes; then + AC_MSG_WARN([dhcpcd not found, assume path /usr/sbin/dhcpcd]) + with_dhcpcd=/usr/sbin/dhcpcd + if test "$with_dhcpcd_supports_ipv6" == auto; then + with_dhcpcd_supports_ipv6=yes + fi + fi + else if ! $with_dhcpcd --version 2>&1 | grep -q "^dhcpcd [[456789]]\."; then - AC_MSG_WARN([Cannot use dhcpcd, version 4.x or higher is required]) - with_dhcpcd=no - elif $with_dhcpcd --version 2>&1 | grep -q "^dhcpcd [[6789]]\."; then - AC_DEFINE(DHCPCD_SUPPORTS_IPV6, 1, [Define if dhcpcd supports IPv6 (6.x+)]) + AC_MSG_WARN([Seems version of dhcpcd $with_dhcpcd is too old, version 4.x or newer is required]) fi fi fi -# Fallback -if test "$with_dhclient" = "no" -a "$with_dhcpcd" = "no"; then - AC_MSG_WARN([Could not find a suitable DHCP client, falling back to dhclient]) - with_dhclient=/sbin/dhclient -fi -# Add substitutions -if test "$with_dhclient" != "no"; then - AC_DEFINE(WITH_DHCLIENT, TRUE, [Define if you have dhclient]) - AC_SUBST(DHCLIENT_PATH, $with_dhclient) +if test "$with_dhcpcd" != "no"; then + if $with_dhcpcd --version 2>&1 | grep -q "^dhcpcd [[6789]]\."; then + if test "$with_dhcpcd_supports_ipv6" == no; then + AC_MSG_WARN([Seems version of dhcpcd $with_dhcpcd supports IPv6, but compiling --with-dhcpcd-supports-ipv6=no]) + else + with_dhcpcd_supports_ipv6=yes + fi + else + if test "$with_dhcpcd_supports_ipv6" == yes; then + AC_MSG_WARN([Seems version of dhcpcd $with_dhcpcd does not support IPv6, but compiling --with-dhcpcd-supports-ipv6=yes]) + else + with_dhcpcd_supports_ipv6=no + fi + fi + if test "$with_dhcpcd_supports_ipv6" != no; then + AC_DEFINE(DHCPCD_SUPPORTS_IPV6, 1, [Define if dhcpcd supports IPv6 (6.x+)]) + fi else - AC_DEFINE(WITH_DHCLIENT, FALSE, [Define if you have dhclient]) + with_dhcpcd_supports_ipv6=no fi if test "$with_dhcpcd" != "no"; then - AC_DEFINE(WITH_DHCPCD, TRUE, [Define if you have dhcpcd]) + AC_DEFINE(WITH_DHCPCD, 1, [Define if you have dhcpcd]) AC_SUBST(DHCPCD_PATH, $with_dhcpcd) else - AC_DEFINE(WITH_DHCPCD, FALSE, [Define if you have dhcpcd]) + AC_DEFINE(WITH_DHCPCD, 0, [Define if you have dhcpcd]) fi # resolvconf and netconfig support @@ -792,6 +815,7 @@ AC_ARG_WITH(netconfig, AS_HELP_STRING([--with-netconfig=yes|no], [Enable SUSE ne AC_ARG_WITH(config-dns-rc-manager-default, AS_HELP_STRING([--with-config-dns-rc-manager-default=symlink|file|netconfig|resolvconf], [Configure default value for main.rc-manager setting]), [config_dns_rc_manager_default=$withval]) if test "$config_dns_rc_manager_default" != symlink -a \ "$config_dns_rc_manager_default" != file -a \ + "$config_dns_rc_manager_default" != "" -a \ "$config_dns_rc_manager_default" != netconfig -a \ "$config_dns_rc_manager_default" != resolvconf; then AC_MSG_WARN([Unknown --with-config-dns-rc-manager-default=$config_dns_rc_manager_default setting.]) @@ -1265,6 +1289,7 @@ echo echo "DHCP clients:" echo " dhclient: $with_dhclient" echo " dhcpcd: $with_dhcpcd" +echo " dhcpcd-supports-ipv6: $with_dhcpcd_supports_ipv6" echo echo "Miscellaneous:" diff --git a/libnm-core/nm-connection.c b/libnm-core/nm-connection.c index 3e9db68f41..5632b1883e 100644 --- a/libnm-core/nm-connection.c +++ b/libnm-core/nm-connection.c @@ -77,7 +77,7 @@ static guint signals[LAST_SIGNAL] = { 0 }; static NMSettingVerifyResult _nm_connection_verify (NMConnection *connection, GError **error); -/*************************************************************/ +/*****************************************************************************/ static void setting_changed_cb (NMSetting *setting, @@ -1860,7 +1860,7 @@ nm_connection_get_virtual_device_description (NMConnection *connection) return g_strdup_printf ("%s (%s)", display_type, iface); } -/*************************************************************/ +/*****************************************************************************/ /** * nm_connection_get_setting_802_1x: @@ -2360,7 +2360,7 @@ nm_connection_get_setting_vlan (NMConnection *connection) return (NMSettingVlan *) nm_connection_get_setting (connection, NM_TYPE_SETTING_VLAN); } -/*************************************************************/ +/*****************************************************************************/ static void nm_connection_private_free (NMConnectionPrivate *priv) diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h index 2a1c69d94b..d7ad49b0f7 100644 --- a/libnm-core/nm-core-internal.h +++ b/libnm-core/nm-core-internal.h @@ -227,7 +227,7 @@ GVariant *_nm_dbus_proxy_call_sync (GDBusProxy *proxy, gboolean _nm_dbus_error_has_name (GError *error, const char *dbus_error_name); -/***********************************************************/ +/*****************************************************************************/ gboolean _nm_vpn_plugin_info_check_file (const char *filename, gboolean check_absolute, @@ -247,7 +247,7 @@ GSList *_nm_vpn_plugin_info_list_load_dir (const char *dirname, NMUtilsCheckFilePredicate check_file, gpointer user_data); -/***********************************************************/ +/*****************************************************************************/ typedef struct { const char *name; @@ -262,7 +262,7 @@ gboolean _nm_utils_dns_option_validate (const char *option, char **out_name, const NMUtilsDNSOptionDesc *option_descs); int _nm_utils_dns_option_find_idx (GPtrArray *array, const char *option); -/***********************************************************/ +/*****************************************************************************/ typedef struct _NMUtilsStrStrDictKey NMUtilsStrStrDictKey; guint _nm_utils_strstrdictkey_hash (gconstpointer a); @@ -272,7 +272,7 @@ NMUtilsStrStrDictKey *_nm_utils_strstrdictkey_create (const char *v1, const char #define _nm_utils_strstrdictkey_static(v1, v2) \ ( (NMUtilsStrStrDictKey *) ("\03" v1 "\0" v2 "") ) -/***********************************************************/ +/*****************************************************************************/ gboolean _nm_setting_vlan_set_priorities (NMSettingVlan *setting, NMVlanPriorityMap map, @@ -283,7 +283,7 @@ void _nm_setting_vlan_get_priorities (NMSettingVlan *setting, NMVlanQosMapping **out_qos_map, guint *out_n_qos_map); -/***********************************************************/ +/*****************************************************************************/ struct ether_addr; @@ -293,7 +293,7 @@ gboolean _nm_utils_generate_mac_address_mask_parse (const char *value, gsize *out_ouis_len, GError **error); -/***********************************************************/ +/*****************************************************************************/ typedef enum { NM_BOND_OPTION_TYPE_INT, @@ -307,7 +307,7 @@ typedef enum { NMBondOptionType _nm_setting_bond_get_option_type (NMSettingBond *setting, const char *name); -/***********************************************************/ +/*****************************************************************************/ typedef enum { NM_BOND_MODE_UNKNOWN = 0, @@ -323,11 +323,11 @@ typedef enum { NMBondMode _nm_setting_bond_mode_from_string (const char *str); gboolean _nm_setting_bond_option_supported (const char *option, NMBondMode mode); -/***********************************************************/ +/*****************************************************************************/ gboolean _nm_utils_inet6_is_token (const struct in6_addr *in6addr); -/***********************************************************/ +/*****************************************************************************/ gboolean _nm_utils_team_config_equal (const char *conf1, const char *conf2, gboolean port); diff --git a/libnm-core/nm-keyfile-internal.h b/libnm-core/nm-keyfile-internal.h index 41bec0cf8a..1bf24be8d0 100644 --- a/libnm-core/nm-keyfile-internal.h +++ b/libnm-core/nm-keyfile-internal.h @@ -27,7 +27,7 @@ #include "nm-connection.h" #include "nm-setting-8021x.h" -/*********************************************************/ +/*****************************************************************************/ #define NM_KEYFILE_CERT_SCHEME_PREFIX_BLOB "data:;base64," #define NM_KEYFILE_CERT_SCHEME_PREFIX_PATH "file://" @@ -94,7 +94,7 @@ NMConnection *nm_keyfile_read (GKeyFile *keyfile, void *user_data, GError **error); -/*********************************************************/ +/*****************************************************************************/ typedef enum { NM_KEYFILE_WRITE_TYPE_CERT = 1, @@ -155,7 +155,7 @@ GKeyFile *nm_keyfile_write (NMConnection *connection, void *user_data, GError **error); -/*********************************************************/ +/*****************************************************************************/ char *nm_keyfile_plugin_kf_get_string (GKeyFile *kf, const char *group, const char *key, GError **error); void nm_keyfile_plugin_kf_set_string (GKeyFile *kf, const char *group, const char *key, const char *value); diff --git a/libnm-core/nm-keyfile-utils.c b/libnm-core/nm-keyfile-utils.c index bdd18bab4c..79b6ea112d 100644 --- a/libnm-core/nm-keyfile-utils.c +++ b/libnm-core/nm-keyfile-utils.c @@ -68,7 +68,7 @@ nm_keyfile_plugin_get_setting_name_for_alias (const char *alias) return NULL; } -/**********************************************************************/ +/*****************************************************************************/ /* List helpers */ #define DEFINE_KF_LIST_WRAPPER(stype, get_ctype, set_ctype) \ @@ -202,7 +202,7 @@ nm_keyfile_plugin_kf_has_key (GKeyFile *kf, return has; } -/************************************************************************/ +/*****************************************************************************/ void _nm_keyfile_copy (GKeyFile *dst, GKeyFile *src) @@ -232,7 +232,7 @@ _nm_keyfile_copy (GKeyFile *dst, GKeyFile *src) } } -/************************************************************************/ +/*****************************************************************************/ gboolean _nm_keyfile_a_contains_all_in_b (GKeyFile *kf_a, GKeyFile *kf_b) diff --git a/libnm-core/nm-keyfile-utils.h b/libnm-core/nm-keyfile-utils.h index faa027db3f..e7d803ce1e 100644 --- a/libnm-core/nm-keyfile-utils.h +++ b/libnm-core/nm-keyfile-utils.h @@ -29,7 +29,7 @@ const char *nm_keyfile_plugin_get_alias_for_setting_name (const char *setting_na const char *nm_keyfile_plugin_get_setting_name_for_alias (const char *alias); -/*********************************************************/ +/*****************************************************************************/ /* List helpers */ #define DEFINE_KF_LIST_WRAPPER_PROTO(stype, get_ctype, set_ctype) \ diff --git a/libnm-core/nm-keyfile-writer.c b/libnm-core/nm-keyfile-writer.c index e0e6ba4bf8..4a2fbd1f18 100644 --- a/libnm-core/nm-keyfile-writer.c +++ b/libnm-core/nm-keyfile-writer.c @@ -428,7 +428,7 @@ static const ObjectType objtypes[10] = { { NULL }, }; -/**************************************************************************/ +/*****************************************************************************/ static void cert_writer_default (NMConnection *connection, @@ -540,7 +540,7 @@ cert_writer (KeyfileWriterInfo *info, cert_writer_default (info->connection, info->keyfile, &type_data); } -/**************************************************************************/ +/*****************************************************************************/ typedef struct { const char *setting_name; diff --git a/libnm-core/nm-setting-bridge-port.c b/libnm-core/nm-setting-bridge-port.c index df2e7bd334..331fa5aea0 100644 --- a/libnm-core/nm-setting-bridge-port.c +++ b/libnm-core/nm-setting-bridge-port.c @@ -60,7 +60,7 @@ enum { LAST_PROP }; -/**************************************************************************/ +/*****************************************************************************/ /** * nm_setting_bridge_port_get_priority: @@ -104,7 +104,7 @@ nm_setting_bridge_port_get_hairpin_mode (NMSettingBridgePort *setting) return NM_SETTING_BRIDGE_PORT_GET_PRIVATE (setting)->hairpin_mode; } -/**************************************************************************/ +/*****************************************************************************/ #define BR_MAX_PORT_PRIORITY 63 #define BR_DEF_PRIORITY 32 @@ -174,7 +174,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) return TRUE; } -/**************************************************************************/ +/*****************************************************************************/ /** * nm_setting_bridge_port_new: diff --git a/libnm-core/nm-setting-connection.c b/libnm-core/nm-setting-connection.c index f6b801c6bd..abd8b19e3c 100644 --- a/libnm-core/nm-setting-connection.c +++ b/libnm-core/nm-setting-connection.c @@ -105,7 +105,7 @@ enum { LAST_PROP }; -/***********************************************************************/ +/*****************************************************************************/ #define PERM_USER_PREFIX "user:" @@ -186,7 +186,7 @@ permission_free (Permission *p) g_slice_free (Permission, p); } -/***********************************************************************/ +/*****************************************************************************/ /** * nm_setting_connection_new: diff --git a/libnm-core/nm-setting-dcb.c b/libnm-core/nm-setting-dcb.c index 751904b510..140dc02102 100644 --- a/libnm-core/nm-setting-dcb.c +++ b/libnm-core/nm-setting-dcb.c @@ -506,7 +506,7 @@ nm_setting_dcb_set_priority_traffic_class (NMSettingDcb *setting, } } -/******************************************************************/ +/*****************************************************************************/ #define DCB_FLAGS_ALL (NM_SETTING_DCB_FLAG_ENABLE | \ NM_SETTING_DCB_FLAG_ADVERTISE | \ @@ -724,7 +724,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) return TRUE; } -/******************************************************************/ +/*****************************************************************************/ static void nm_setting_dcb_init (NMSettingDcb *setting) diff --git a/libnm-core/nm-setting-generic.c b/libnm-core/nm-setting-generic.c index a44f83cbb0..09edeb6e1b 100644 --- a/libnm-core/nm-setting-generic.c +++ b/libnm-core/nm-setting-generic.c @@ -46,7 +46,7 @@ typedef struct { int dummy; } NMSettingGenericPrivate; -/**************************************************************************/ +/*****************************************************************************/ /** * nm_setting_generic_new: diff --git a/libnm-core/nm-setting-ip-tunnel.c b/libnm-core/nm-setting-ip-tunnel.c index f75a51b68c..4b78bde05a 100644 --- a/libnm-core/nm-setting-ip-tunnel.c +++ b/libnm-core/nm-setting-ip-tunnel.c @@ -285,7 +285,7 @@ nm_setting_ip_tunnel_get_mtu (NMSettingIPTunnel *setting) return NM_SETTING_IP_TUNNEL_GET_PRIVATE (setting)->mtu; } -/*********************************************************************/ +/*****************************************************************************/ static gboolean verify (NMSetting *setting, NMConnection *connection, GError **error) diff --git a/libnm-core/nm-setting-macvlan.c b/libnm-core/nm-setting-macvlan.c index aec3b4f99d..836e6d5e7c 100644 --- a/libnm-core/nm-setting-macvlan.c +++ b/libnm-core/nm-setting-macvlan.c @@ -136,7 +136,7 @@ nm_setting_macvlan_get_tap (NMSettingMacvlan *setting) return NM_SETTING_MACVLAN_GET_PRIVATE (setting)->tap; } -/*********************************************************************/ +/*****************************************************************************/ static void nm_setting_macvlan_init (NMSettingMacvlan *setting) diff --git a/libnm-core/nm-setting-vlan.c b/libnm-core/nm-setting-vlan.c index 827a47af23..b27fe65ed3 100644 --- a/libnm-core/nm-setting-vlan.c +++ b/libnm-core/nm-setting-vlan.c @@ -595,7 +595,7 @@ nm_setting_vlan_clear_priorities (NMSettingVlan *setting, NMVlanPriorityMap map) set_map (setting, map, NULL); } -/*********************************************************************/ +/*****************************************************************************/ static void nm_setting_vlan_init (NMSettingVlan *setting) diff --git a/libnm-core/nm-setting-vxlan.c b/libnm-core/nm-setting-vxlan.c index 57fbfd795f..deedd919ae 100644 --- a/libnm-core/nm-setting-vxlan.c +++ b/libnm-core/nm-setting-vxlan.c @@ -340,7 +340,7 @@ nm_setting_vxlan_get_l3_miss (NMSettingVxlan *setting) return NM_SETTING_VXLAN_GET_PRIVATE (setting)->l3_miss; } -/*********************************************************************/ +/*****************************************************************************/ static void nm_setting_vxlan_init (NMSettingVxlan *setting) diff --git a/libnm-core/nm-setting.c b/libnm-core/nm-setting.c index fcd8dff760..82467c9c6a 100644 --- a/libnm-core/nm-setting.c +++ b/libnm-core/nm-setting.c @@ -74,7 +74,7 @@ enum { PROP_LAST }; -/*************************************************************/ +/*****************************************************************************/ static GHashTable *registered_settings = NULL; static GHashTable *registered_settings_by_type = NULL; @@ -115,7 +115,7 @@ _ensure_registered_constructor (void) } \ } G_STMT_END -/*************************************************************/ +/*****************************************************************************/ /* * _nm_register_setting: @@ -264,7 +264,7 @@ _nm_setting_compare_priority (gconstpointer a, gconstpointer b) return 1; } -/*************************************************************/ +/*****************************************************************************/ gboolean _nm_setting_slave_type_is_valid (const char *slave_type, const char **out_port_type) @@ -288,7 +288,7 @@ _nm_setting_slave_type_is_valid (const char *slave_type, const char **out_port_t return found; } -/*************************************************************/ +/*****************************************************************************/ typedef struct { const char *name; @@ -592,7 +592,7 @@ nm_setting_class_find_property (NMSettingClass *setting_class, const char *prope return find_property (properties, property_name); } -/*************************************************************/ +/*****************************************************************************/ static const GVariantType * variant_type_for_gtype (GType type) diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c index 4e1694696b..f94b217a20 100644 --- a/libnm-core/nm-utils.c +++ b/libnm-core/nm-utils.c @@ -2144,7 +2144,7 @@ next: return routes; } -/**********************************************************************************************/ +/*****************************************************************************/ /** * nm_utils_uuid_generate: @@ -2260,7 +2260,7 @@ _nm_utils_uuid_generate_from_strings (const char *string1, ...) return uuid; } -/**********************************************************************************************/ +/*****************************************************************************/ /** * nm_utils_rsa_key_encrypt: @@ -2454,7 +2454,7 @@ nm_utils_file_is_pkcs12 (const char *filename) return crypto_is_pkcs12_file (filename, NULL); } -/**********************************************************************************************/ +/*****************************************************************************/ gboolean _nm_utils_check_file (const char *filename, @@ -2580,7 +2580,7 @@ _nm_utils_check_module_file (const char *name, error); } -/**********************************************************************************************/ +/*****************************************************************************/ /** * nm_utils_file_search_in_paths: @@ -2654,7 +2654,7 @@ NOT_FOUND: return NULL; } -/**********************************************************************************************/ +/*****************************************************************************/ /* Band, channel/frequency stuff for wireless */ struct cf_pair { @@ -4001,7 +4001,7 @@ nm_utils_bond_mode_string_to_int (const char *mode) return -1; } -/**********************************************************************************************/ +/*****************************************************************************/ #define STRSTRDICTKEY_V1_SET 0x01 #define STRSTRDICTKEY_V2_SET 0x02 diff --git a/libnm-core/nm-vpn-editor-plugin.c b/libnm-core/nm-vpn-editor-plugin.c index 7cb02abd0e..32e2a4edf2 100644 --- a/libnm-core/nm-vpn-editor-plugin.c +++ b/libnm-core/nm-vpn-editor-plugin.c @@ -72,7 +72,7 @@ nm_vpn_editor_plugin_default_init (NMVpnEditorPluginInterface *iface) G_PARAM_STATIC_STRINGS)); } -/*********************************************************************/ +/*****************************************************************************/ typedef struct { NMVpnPluginInfo *plugin_info; @@ -113,7 +113,7 @@ _private_get (NMVpnEditorPlugin *plugin, gboolean create) #define NM_VPN_EDITOR_PLUGIN_GET_PRIVATE(plugin) _private_get (plugin, TRUE) #define NM_VPN_EDITOR_PLUGIN_TRY_GET_PRIVATE(plugin) _private_get (plugin, FALSE) -/*********************************************************************/ +/*****************************************************************************/ /** * nm_vpn_editor_plugin_get_plugin_info: @@ -178,7 +178,7 @@ nm_vpn_editor_plugin_set_plugin_info (NMVpnEditorPlugin *plugin, NMVpnPluginInfo } -/*********************************************************************/ +/*****************************************************************************/ /** * nm_vpn_editor_plugin_get_vt: @@ -225,7 +225,7 @@ nm_vpn_editor_plugin_get_vt (NMVpnEditorPlugin *plugin, return p_vt_size; } -/*********************************************************************/ +/*****************************************************************************/ static NMVpnEditorPlugin * _nm_vpn_editor_plugin_load (const char *plugin_name, @@ -446,7 +446,7 @@ nm_vpn_editor_plugin_load (const char *plugin_name, error); } -/*********************************************************************/ +/*****************************************************************************/ /** * nm_vpn_editor_plugin_get_editor: diff --git a/libnm-core/nm-vpn-editor-plugin.h b/libnm-core/nm-vpn-editor-plugin.h index fb51f7e621..6d3cf0c781 100644 --- a/libnm-core/nm-vpn-editor-plugin.h +++ b/libnm-core/nm-vpn-editor-plugin.h @@ -48,9 +48,9 @@ NMVpnEditorPlugin *nm_vpn_editor_plugin_factory (GError **error); #endif -/**************************************************/ +/*****************************************************************************/ /* Editor plugin interface */ -/**************************************************/ +/*****************************************************************************/ #define NM_TYPE_VPN_EDITOR_PLUGIN (nm_vpn_editor_plugin_get_type ()) #define NM_VPN_EDITOR_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_VPN_EDITOR_PLUGIN, NMVpnEditorPlugin)) diff --git a/libnm-core/nm-vpn-plugin-info.c b/libnm-core/nm-vpn-plugin-info.c index d3bc4893aa..14c3588e78 100644 --- a/libnm-core/nm-vpn-plugin-info.c +++ b/libnm-core/nm-vpn-plugin-info.c @@ -67,7 +67,7 @@ G_DEFINE_TYPE_WITH_CODE (NMVpnPluginInfo, nm_vpn_plugin_info, G_TYPE_OBJECT, #define NM_VPN_PLUGIN_INFO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_VPN_PLUGIN_INFO, NMVpnPluginInfoPrivate)) -/*********************************************************************/ +/*****************************************************************************/ /** * nm_vpn_plugin_info_validate_filename: @@ -412,7 +412,7 @@ nm_vpn_plugin_info_new_search_file (const char *name, const char *service) return plugin_info; } -/*********************************************************************/ +/*****************************************************************************/ static gboolean _check_no_conflict (NMVpnPluginInfo *i1, NMVpnPluginInfo *i2, GError **error) @@ -775,7 +775,7 @@ nm_vpn_plugin_info_list_get_service_types (GSList *list, return (char **) g_ptr_array_free (l, FALSE); } -/*********************************************************************/ +/*****************************************************************************/ /** * nm_vpn_plugin_info_get_filename: @@ -987,7 +987,7 @@ nm_vpn_plugin_info_lookup_property (NMVpnPluginInfo *self, const char *group, co return g_hash_table_lookup (priv->keys, k); } -/*********************************************************************/ +/*****************************************************************************/ /** * nm_vpn_plugin_info_get_editor_plugin: @@ -1094,7 +1094,7 @@ nm_vpn_plugin_info_load_editor_plugin (NMVpnPluginInfo *self, GError **error) return priv->editor_plugin; } -/*********************************************************************/ +/*****************************************************************************/ /** * nm_vpn_plugin_info_new_from_file: @@ -1152,7 +1152,7 @@ nm_vpn_plugin_info_new_with_data (const char *filename, NULL)); } -/*********************************************************************/ +/*****************************************************************************/ static void nm_vpn_plugin_info_init (NMVpnPluginInfo *plugin) diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c index c75abbf999..52c6f80911 100644 --- a/libnm-core/tests/test-general.c +++ b/libnm-core/tests/test-general.c @@ -2527,7 +2527,7 @@ test_setting_compare_wireless_cloned_mac_address (void) g_assert_cmpstr ("stable-bia", ==, nm_setting_wireless_get_cloned_mac_address ((NMSettingWireless *) new)); g_object_get (new, NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, &str1, NULL); g_assert_cmpstr ("stable-bia", ==, str1); - g_clear_pointer (&str1, g_free); + nm_clear_g_free (&str1); success = nm_setting_compare (old, new, NM_SETTING_COMPARE_FLAG_EXACT); g_assert (!success); @@ -3318,7 +3318,7 @@ test_setting_old_uuid (void) nmtst_assert_setting_verifies (NM_SETTING (setting)); } -/******************************************************************************/ +/*****************************************************************************/ static void test_connection_normalize_uuid (void) @@ -3335,7 +3335,7 @@ test_connection_normalize_uuid (void) nmtst_assert_connection_verifies_after_normalization (con, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_MISSING_PROPERTY); } -/******************************************************************************/ +/*****************************************************************************/ /* * Test normalization of interface-name @@ -4313,7 +4313,7 @@ test_hexstr2bin (void) } } -/******************************************************************************/ +/*****************************************************************************/ #define UUID_NIL "00000000-0000-0000-0000-000000000000" #define UUID_NS_DNS "6ba7b810-9dad-11d1-80b4-00c04fd430c8" @@ -4367,7 +4367,7 @@ test_nm_utils_uuid_generate_from_string (void) _test_uuid (NM_UTILS_UUID_TYPE_VARIANT3, "002a0ada-f547-375a-bab5-896a11d1927e", "a\0b", 3, UUID_NS_DNS); } -/*******************************************/ +/*****************************************************************************/ static void __test_uuid (const char *expected_uuid, const char *str, gssize slen, char *uuid_test) @@ -4414,7 +4414,7 @@ test_nm_utils_uuid_generate_from_strings (void) _test_uuid ("dd265bf7-c05a-3037-9939-b9629858a477", "a\0b\0", 4, "a", "b"); } -/******************************************************************************/ +/*****************************************************************************/ static void test_nm_utils_ascii_str_to_int64_check (const char *str, guint base, gint64 min, @@ -4545,7 +4545,7 @@ test_nm_utils_ascii_str_to_int64 (void) test_nm_utils_ascii_str_to_int64_do ("0x70", 0, G_MININT64, G_MAXINT64, -1, 0, 0x70); } -/******************************************************************************/ +/*****************************************************************************/ static void test_nm_utils_strstrdictkey (void) @@ -4593,7 +4593,7 @@ test_nm_utils_strstrdictkey (void) } } -/******************************************************************************/ +/*****************************************************************************/ static void test_nm_utils_dns_option_validate_do (char *option, gboolean ipv6, const NMUtilsDNSOptionDesc *descs, @@ -4677,7 +4677,7 @@ test_nm_utils_dns_option_find_idx (void) g_ptr_array_free (options, TRUE); } -/******************************************************************************/ +/*****************************************************************************/ static void _json_config_check_valid (const char *conf, gboolean expected) @@ -4781,7 +4781,7 @@ test_nm_utils_team_config_equal (void) #endif } -/******************************************************************************/ +/*****************************************************************************/ enum TEST_IS_POWER_OF_TWP_ENUM_SIGNED { _DUMMY_1 = -1, @@ -4878,7 +4878,7 @@ again: } } -/******************************************************************************/ +/*****************************************************************************/ static void test_g_ptr_array_insert (void) @@ -4903,7 +4903,7 @@ test_g_ptr_array_insert (void) #endif } -/******************************************************************************/ +/*****************************************************************************/ static void test_g_hash_table_get_keys_as_array (void) @@ -4938,7 +4938,7 @@ test_g_hash_table_get_keys_as_array (void) g_hash_table_unref (table); } -/******************************************************************************/ +/*****************************************************************************/ static int _test_find_binary_search_cmp (gconstpointer a, gconstpointer b, gpointer dummy) @@ -5082,7 +5082,7 @@ test_nm_utils_ptrarray_find_binary_search (void) test_find_binary_search_do (-3, -2, -1, 1, 2, 3, 4); } -/******************************************************************************/ +/*****************************************************************************/ static void test_nm_utils_enum_from_str_do (GType type, const char *str, gboolean exp_result, int exp_flags, @@ -5177,7 +5177,7 @@ static void test_nm_utils_enum (void) test_nm_utils_enum_get_values_do (color_flags, 0, G_MAXINT, "blue,red,green"); } -/******************************************************************************/ +/*****************************************************************************/ static int _test_nm_in_set_get (int *call_counter, gboolean allow_called, int value) @@ -5269,7 +5269,7 @@ test_nm_in_set (void) #undef _ASSERT } -/******************************************************************************/ +/*****************************************************************************/ static const char * _test_nm_in_set_getstr (int *call_counter, gboolean allow_called, const char *value) @@ -5397,7 +5397,7 @@ test_nm_in_strset (void) #undef _ASSERT } -/******************************************************************************/ +/*****************************************************************************/ static gboolean do_test_nm_set_out_called (gint *call_count) @@ -5427,7 +5427,7 @@ test_nm_set_out (void) g_assert_cmpint (call_count, ==, 0); } -/******************************************************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/libnm-core/tests/test-keyfile.c b/libnm-core/tests/test-keyfile.c index b9b211b68b..84dcffbb9f 100644 --- a/libnm-core/tests/test-keyfile.c +++ b/libnm-core/tests/test-keyfile.c @@ -36,7 +36,7 @@ #define TEST_WIRED_TLS_PRIVKEY TEST_CERT_DIR"/test-key-and-cert.pem" -/******************************************************************************/ +/*****************************************************************************/ #define CLEAR(con, keyfile) \ G_STMT_START { \ @@ -219,7 +219,7 @@ _keyfile_convert (NMConnection **con, } } -/******************************************************************************/ +/*****************************************************************************/ static void _test_8021x_cert_check (NMConnection *con, @@ -359,7 +359,7 @@ test_8021x_cert (void) } -/******************************************************************************/ +/*****************************************************************************/ static void test_8021x_cert_read (void) @@ -567,7 +567,7 @@ test_team_conf_read_invalid (void) #endif } -/******************************************************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/libnm-glib/nm-access-point.c b/libnm-glib/nm-access-point.c index 5f34cb292c..0aef3ee400 100644 --- a/libnm-glib/nm-access-point.c +++ b/libnm-glib/nm-access-point.c @@ -432,7 +432,7 @@ nm_access_point_filter_connections (NMAccessPoint *ap, const GSList *connections return g_slist_reverse (filtered); } -/************************************************************/ +/*****************************************************************************/ static void nm_access_point_init (NMAccessPoint *ap) diff --git a/libnm-glib/nm-client.c b/libnm-glib/nm-client.c index f0ce64bc31..796019e7a6 100644 --- a/libnm-glib/nm-client.c +++ b/libnm-glib/nm-client.c @@ -127,7 +127,7 @@ static void proxy_name_owner_changed (DBusGProxy *proxy, const char *new_owner, gpointer user_data); -/**********************************************************************/ +/*****************************************************************************/ /** * nm_client_error_quark: @@ -148,7 +148,7 @@ nm_client_error_quark (void) return quark; } -/**********************************************************************/ +/*****************************************************************************/ static void nm_client_init (NMClient *client) @@ -1315,7 +1315,7 @@ nm_client_get_activating_connection (NMClient *client) return NM_CLIENT_GET_PRIVATE (client)->activating_connection; } -/****************************************************************/ +/*****************************************************************************/ static void free_devices (NMClient *client, gboolean in_dispose) @@ -1658,7 +1658,7 @@ nm_client_check_connectivity_finish (NMClient *client, return ccd->connectivity; } -/****************************************************************/ +/*****************************************************************************/ /** * nm_client_new: diff --git a/libnm-glib/nm-device-adsl.c b/libnm-glib/nm-device-adsl.c index b8d341f452..30f6c4ec16 100644 --- a/libnm-glib/nm-device-adsl.c +++ b/libnm-glib/nm-device-adsl.c @@ -140,7 +140,7 @@ get_setting_type (NMDevice *device) return NM_TYPE_SETTING_ADSL; } -/******************************************************************/ +/*****************************************************************************/ static void nm_device_adsl_init (NMDeviceAdsl *device) diff --git a/libnm-glib/nm-device-bond.c b/libnm-glib/nm-device-bond.c index 2ba34162bd..bd5bc216a7 100644 --- a/libnm-glib/nm-device-bond.c +++ b/libnm-glib/nm-device-bond.c @@ -200,7 +200,7 @@ get_hw_address (NMDevice *device) return nm_device_bond_get_hw_address (NM_DEVICE_BOND (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_bond_init (NMDeviceBond *device) diff --git a/libnm-glib/nm-device-bridge.c b/libnm-glib/nm-device-bridge.c index d95a21194d..20d65cfad3 100644 --- a/libnm-glib/nm-device-bridge.c +++ b/libnm-glib/nm-device-bridge.c @@ -208,7 +208,7 @@ get_hw_address (NMDevice *device) return nm_device_bridge_get_hw_address (NM_DEVICE_BRIDGE (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_bridge_init (NMDeviceBridge *device) diff --git a/libnm-glib/nm-device-bt.c b/libnm-glib/nm-device-bt.c index 5f6a12f5fe..5cf55c576e 100644 --- a/libnm-glib/nm-device-bt.c +++ b/libnm-glib/nm-device-bt.c @@ -232,7 +232,7 @@ get_hw_address (NMDevice *device) return nm_device_bt_get_hw_address (NM_DEVICE_BT (device)); } -/************************************************************/ +/*****************************************************************************/ static void nm_device_bt_init (NMDeviceBt *device) diff --git a/libnm-glib/nm-device-ethernet.c b/libnm-glib/nm-device-ethernet.c index 46056a2c7b..2817a32053 100644 --- a/libnm-glib/nm-device-ethernet.c +++ b/libnm-glib/nm-device-ethernet.c @@ -235,7 +235,7 @@ get_hw_address (NMDevice *device) return nm_device_ethernet_get_hw_address (NM_DEVICE_ETHERNET (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_ethernet_init (NMDeviceEthernet *device) diff --git a/libnm-glib/nm-device-generic.c b/libnm-glib/nm-device-generic.c index dd9c24b5c9..206174fb16 100644 --- a/libnm-glib/nm-device-generic.c +++ b/libnm-glib/nm-device-generic.c @@ -112,7 +112,7 @@ nm_device_generic_get_hw_address (NMDeviceGeneric *device) return NM_DEVICE_GENERIC_GET_PRIVATE (device)->hw_address; } -/***********************************************************/ +/*****************************************************************************/ static const char * get_type_description (NMDevice *device) @@ -161,7 +161,7 @@ get_setting_type (NMDevice *device) return NM_TYPE_SETTING_GENERIC; } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_generic_init (NMDeviceGeneric *device) diff --git a/libnm-glib/nm-device-infiniband.c b/libnm-glib/nm-device-infiniband.c index c256c4a1ca..5c4a8c8b9f 100644 --- a/libnm-glib/nm-device-infiniband.c +++ b/libnm-glib/nm-device-infiniband.c @@ -187,7 +187,7 @@ get_hw_address (NMDevice *device) return nm_device_infiniband_get_hw_address (NM_DEVICE_INFINIBAND (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_infiniband_init (NMDeviceInfiniband *device) diff --git a/libnm-glib/nm-device-modem.c b/libnm-glib/nm-device-modem.c index 96ce6ca098..d4c156178e 100644 --- a/libnm-glib/nm-device-modem.c +++ b/libnm-glib/nm-device-modem.c @@ -176,7 +176,7 @@ get_setting_type (NMDevice *device) return G_TYPE_INVALID; } -/*******************************************************************/ +/*****************************************************************************/ static void nm_device_modem_init (NMDeviceModem *device) diff --git a/libnm-glib/nm-device-olpc-mesh.c b/libnm-glib/nm-device-olpc-mesh.c index 846b4c51be..df4fb4655e 100644 --- a/libnm-glib/nm-device-olpc-mesh.c +++ b/libnm-glib/nm-device-olpc-mesh.c @@ -185,7 +185,7 @@ get_setting_type (NMDevice *device) return NM_TYPE_SETTING_OLPC_MESH; } -/**************************************************************/ +/*****************************************************************************/ static void nm_device_olpc_mesh_init (NMDeviceOlpcMesh *device) diff --git a/libnm-glib/nm-device-team.c b/libnm-glib/nm-device-team.c index 7b50e1852a..2a12a73289 100644 --- a/libnm-glib/nm-device-team.c +++ b/libnm-glib/nm-device-team.c @@ -208,7 +208,7 @@ get_setting_type (NMDevice *device) return NM_TYPE_SETTING_TEAM; } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_team_init (NMDeviceTeam *device) diff --git a/libnm-glib/nm-device-vlan.c b/libnm-glib/nm-device-vlan.c index 28d8ce5761..3f40ec567d 100644 --- a/libnm-glib/nm-device-vlan.c +++ b/libnm-glib/nm-device-vlan.c @@ -233,7 +233,7 @@ get_hw_address (NMDevice *device) return nm_device_vlan_get_hw_address (NM_DEVICE_VLAN (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_vlan_init (NMDeviceVlan *device) diff --git a/libnm-glib/nm-device-wifi.c b/libnm-glib/nm-device-wifi.c index 2c12628a9d..08e5b90c10 100644 --- a/libnm-glib/nm-device-wifi.c +++ b/libnm-glib/nm-device-wifi.c @@ -532,7 +532,7 @@ get_hw_address (NMDevice *device) return nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (device)); } -/**************************************************************/ +/*****************************************************************************/ static void nm_device_wifi_init (NMDeviceWifi *device) diff --git a/libnm-glib/nm-device-wimax.c b/libnm-glib/nm-device-wimax.c index 9bd733e7fd..cda3601670 100644 --- a/libnm-glib/nm-device-wimax.c +++ b/libnm-glib/nm-device-wimax.c @@ -428,7 +428,7 @@ get_hw_address (NMDevice *device) return nm_device_wimax_get_hw_address (NM_DEVICE_WIMAX (device)); } -/**************************************************************/ +/*****************************************************************************/ static void nm_device_wimax_init (NMDeviceWimax *device) diff --git a/libnm-glib/nm-remote-connection.c b/libnm-glib/nm-remote-connection.c index a4dc638adc..5c07f0ecec 100644 --- a/libnm-glib/nm-remote-connection.c +++ b/libnm-glib/nm-remote-connection.c @@ -108,7 +108,7 @@ nm_remote_connection_error_quark (void) return quark; } -/****************************************************************/ +/*****************************************************************************/ static void _nm_remote_connection_ensure_inited (NMRemoteConnection *self) @@ -131,7 +131,7 @@ _nm_remote_connection_ensure_inited (NMRemoteConnection *self) } } -/****************************************************************/ +/*****************************************************************************/ static void remote_call_dbus_cb (DBusGProxy *proxy, DBusGProxyCall *proxy_call, gpointer user_data) @@ -213,7 +213,7 @@ proxy_destroy_cb (DBusGProxy* proxy, gpointer user_data) { proxy_set_destroyed (user_data); } -/****************************************************************/ +/*****************************************************************************/ static void result_cb (RemoteCall *call, DBusGProxyCall *proxy_call, GError *error) @@ -445,7 +445,7 @@ nm_remote_connection_get_unsaved (NMRemoteConnection *connection) return NM_REMOTE_CONNECTION_GET_PRIVATE (connection)->unsaved; } -/****************************************************************/ +/*****************************************************************************/ static void updated_get_settings_cb (DBusGProxy *proxy, @@ -531,7 +531,7 @@ properties_changed_cb (DBusGProxy *proxy, } } -/****************************************************************/ +/*****************************************************************************/ /** * nm_remote_connection_new: diff --git a/libnm-glib/nm-remote-settings.c b/libnm-glib/nm-remote-settings.c index b64743a99c..6e90db1958 100644 --- a/libnm-glib/nm-remote-settings.c +++ b/libnm-glib/nm-remote-settings.c @@ -170,7 +170,7 @@ enum { }; static guint signals[LAST_SIGNAL] = { 0 }; -/**********************************************************************/ +/*****************************************************************************/ /** * nm_remote_settings_error_quark: @@ -189,7 +189,7 @@ nm_remote_settings_error_quark (void) return quark; } -/**********************************************************************/ +/*****************************************************************************/ static void _nm_remote_settings_ensure_inited (NMRemoteSettings *self) @@ -212,7 +212,7 @@ _nm_remote_settings_ensure_inited (NMRemoteSettings *self) } } -/**********************************************************************/ +/*****************************************************************************/ typedef struct { NMRemoteSettings *self; @@ -1057,7 +1057,7 @@ name_owner_changed (DBusGProxy *proxy, } } -/****************************************************************/ +/*****************************************************************************/ /** * nm_remote_settings_new: diff --git a/libnm-glib/nm-secret-agent.c b/libnm-glib/nm-secret-agent.c index 03290469ad..aeb7a208ca 100644 --- a/libnm-glib/nm-secret-agent.c +++ b/libnm-glib/nm-secret-agent.c @@ -99,7 +99,7 @@ enum { static guint signals[LAST_SIGNAL] = { 0 }; -/********************************************************************/ +/*****************************************************************************/ GQuark nm_secret_agent_error_quark (void) @@ -111,7 +111,7 @@ nm_secret_agent_error_quark (void) return ret; } -/*************************************************************/ +/*****************************************************************************/ static const char * get_nm_owner (NMSecretAgent *self) @@ -512,7 +512,7 @@ impl_secret_agent_delete_secrets (NMSecretAgent *self, g_object_unref (connection); } -/**************************************************************/ +/*****************************************************************************/ static void reg_result (NMSecretAgent *self, GError *error) @@ -692,7 +692,7 @@ auto_register_cb (gpointer user_data) return FALSE; } -/**************************************************************/ +/*****************************************************************************/ /** * nm_secret_agent_get_secrets: @@ -796,7 +796,7 @@ nm_secret_agent_delete_secrets (NMSecretAgent *self, user_data); } -/**************************************************************/ +/*****************************************************************************/ static gboolean validate_identifier (const char *identifier) diff --git a/libnm-glib/nm-types.c b/libnm-glib/nm-types.c index 19f19e368d..5fe1eb535c 100644 --- a/libnm-glib/nm-types.c +++ b/libnm-glib/nm-types.c @@ -81,7 +81,7 @@ _nm_ssid_demarshal (GValue *value, GByteArray **dest) return TRUE; } -/*****************************/ +/*****************************************************************************/ static gpointer _nm_uint_array_copy (GArray *src) @@ -133,7 +133,7 @@ _nm_uint_array_demarshal (GValue *value, GArray **dest) return TRUE; } -/*****************************/ +/*****************************************************************************/ static gpointer _nm_string_array_copy (GPtrArray *src) @@ -194,7 +194,7 @@ _nm_string_array_demarshal (GValue *value, GPtrArray **dest) return TRUE; } -/*****************************/ +/*****************************************************************************/ static gpointer _nm_object_array_copy (GPtrArray *src) @@ -276,7 +276,7 @@ _nm_object_array_demarshal (GValue *value, return TRUE; } -/*****************************/ +/*****************************************************************************/ static gpointer _nm_ip6_address_object_array_copy (GPtrArray *src) @@ -312,7 +312,7 @@ nm_ip6_address_object_array_get_type (void) return our_type; } -/*****************************/ +/*****************************************************************************/ static gpointer _nm_ip6_address_array_copy (GPtrArray *src) @@ -384,7 +384,7 @@ _nm_ip6_address_array_demarshal (GValue *value, GSList **dest) return TRUE; } -/*****************************/ +/*****************************************************************************/ static gpointer _nm_ip6_route_object_array_copy (GPtrArray *src) diff --git a/libnm-glib/nm-vpn-plugin-ui-interface.h b/libnm-glib/nm-vpn-plugin-ui-interface.h index e671e6cfac..37fde91f8c 100644 --- a/libnm-glib/nm-vpn-plugin-ui-interface.h +++ b/libnm-glib/nm-vpn-plugin-ui-interface.h @@ -38,9 +38,9 @@ typedef NMVpnPluginUiInterface * (*NMVpnPluginUiFactory) (GError **error); NMVpnPluginUiInterface *nm_vpn_plugin_ui_factory (GError **error); -/**************************************************/ +/*****************************************************************************/ /* Plugin interface */ -/**************************************************/ +/*****************************************************************************/ #define NM_TYPE_VPN_PLUGIN_UI_INTERFACE (nm_vpn_plugin_ui_interface_get_type ()) #define NM_VPN_PLUGIN_UI_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_VPN_PLUGIN_UI_INTERFACE, NMVpnPluginUiInterface)) @@ -174,9 +174,9 @@ gboolean nm_vpn_plugin_ui_interface_delete_connection (NMVpnPluginUiInterface *i GError **error); -/**************************************************/ +/*****************************************************************************/ /* UI widget interface */ -/**************************************************/ +/*****************************************************************************/ #define NM_TYPE_VPN_PLUGIN_UI_WIDGET_INTERFACE (nm_vpn_plugin_ui_widget_interface_get_type ()) #define NM_VPN_PLUGIN_UI_WIDGET_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_VPN_PLUGIN_UI_WIDGET_INTERFACE, NMVpnPluginUiWidgetInterface)) diff --git a/libnm-glib/nm-vpn-plugin.c b/libnm-glib/nm-vpn-plugin.c index 0534b766e8..0ea30b58a3 100644 --- a/libnm-glib/nm-vpn-plugin.c +++ b/libnm-glib/nm-vpn-plugin.c @@ -508,7 +508,7 @@ impl_vpn_plugin_connect_interactive (NMVPNPlugin *plugin, return _connect_generic (plugin, connection, details, error); } -/***************************************************************/ +/*****************************************************************************/ static gboolean impl_vpn_plugin_need_secrets (NMVPNPlugin *plugin, @@ -635,7 +635,7 @@ nm_vpn_plugin_secrets_required (NMVPNPlugin *plugin, g_signal_emit (plugin, signals[SECRETS_REQUIRED], 0, message, hints); } -/***************************************************************/ +/*****************************************************************************/ static gboolean impl_vpn_plugin_disconnect (NMVPNPlugin *plugin, @@ -684,7 +684,7 @@ impl_vpn_plugin_set_failure (NMVPNPlugin *plugin, return TRUE; } -/*********************************************************************/ +/*****************************************************************************/ static void sigterm_handler (int signum) @@ -706,7 +706,7 @@ setup_unix_signal_handler (void) sigaction (SIGTERM, &action, NULL); } -/*********************************************************************/ +/*****************************************************************************/ static void one_plugin_destroyed (gpointer data, diff --git a/libnm-glib/nm-wimax-nsp.c b/libnm-glib/nm-wimax-nsp.c index 6a3b8effab..9e36e5b9d0 100644 --- a/libnm-glib/nm-wimax-nsp.c +++ b/libnm-glib/nm-wimax-nsp.c @@ -198,7 +198,7 @@ nm_wimax_nsp_filter_connections (NMWimaxNsp *nsp, const GSList *connections) return g_slist_reverse (filtered); } -/************************************************************/ +/*****************************************************************************/ static void nm_wimax_nsp_init (NMWimaxNsp *nsp) diff --git a/libnm-glib/tests/test-nm-client.c b/libnm-glib/tests/test-nm-client.c index 0da93c3fd3..b6b5968b3f 100644 --- a/libnm-glib/tests/test-nm-client.c +++ b/libnm-glib/tests/test-nm-client.c @@ -39,7 +39,7 @@ static GMainLoop *loop = NULL; static NMTstcServiceInfo *sinfo; -/*******************************************************************/ +/*****************************************************************************/ static gboolean loop_quit (gpointer user_data) @@ -93,7 +93,7 @@ add_wired_device (const char *method, const char *ifname, char **out_path) return TRUE; } -/*******************************************************************/ +/*****************************************************************************/ typedef struct { GMainLoop *loop; @@ -197,7 +197,7 @@ test_device_added (void) g_clear_pointer (&sinfo, nmtstc_service_cleanup); } -/*******************************************************************/ +/*****************************************************************************/ static const char *expected_bssid = "66:55:44:33:22:11"; @@ -420,7 +420,7 @@ test_wifi_ap_added_removed (void) g_clear_pointer (&sinfo, nmtstc_service_cleanup); } -/*******************************************************************/ +/*****************************************************************************/ static const char *expected_nsp_name = "Clear"; @@ -643,7 +643,7 @@ test_wimax_nsp_added_removed (void) g_clear_pointer (&sinfo, nmtstc_service_cleanup); } -/*******************************************************************/ +/*****************************************************************************/ typedef struct { GMainLoop *loop; @@ -873,7 +873,7 @@ test_client_manager_running (void) g_object_unref (client2); } -/*******************************************************************/ +/*****************************************************************************/ static GPtrArray * _slist_to_array (GPtrArray **connections, GSList *list) @@ -1121,7 +1121,7 @@ test_connection_invalid (void) #undef ASSERT_IDX } -/*******************************************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/libnm-glib/tests/test-remote-settings-client.c b/libnm-glib/tests/test-remote-settings-client.c index 9213aa720e..57bc4faa61 100644 --- a/libnm-glib/tests/test-remote-settings-client.c +++ b/libnm-glib/tests/test-remote-settings-client.c @@ -41,7 +41,7 @@ static NMRemoteSettings *settings = NULL; DBusGConnection *bus = NULL; NMRemoteConnection *remote = NULL; -/*******************************************************************/ +/*****************************************************************************/ static void add_cb (NMRemoteSettings *s, @@ -105,7 +105,7 @@ test_add_connection (void) NM_SETTING_COMPARE_FLAG_EXACT) == TRUE); } -/*******************************************************************/ +/*****************************************************************************/ static void set_visible_cb (DBusGProxy *proxy, @@ -192,7 +192,7 @@ test_make_invisible (void) g_object_unref (proxy); } -/*******************************************************************/ +/*****************************************************************************/ static void vis_new_connection_cb (NMRemoteSettings *foo, @@ -262,7 +262,7 @@ test_make_visible (void) g_object_unref (proxy); } -/*******************************************************************/ +/*****************************************************************************/ static void deleted_cb (DBusGProxy *proxy, @@ -336,7 +336,7 @@ test_remove_connection (void) g_object_unref (proxy); } -/*******************************************************************/ +/*****************************************************************************/ static GMainLoop *loop; @@ -418,7 +418,7 @@ test_service_running (void) g_object_unref (settings2); } -/*******************************************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/libnm-util/nm-connection.c b/libnm-util/nm-connection.c index 51c480284f..b929fdcd1a 100644 --- a/libnm-util/nm-connection.c +++ b/libnm-util/nm-connection.c @@ -124,7 +124,7 @@ static guint signals[LAST_SIGNAL] = { 0 }; static NMSettingVerifyResult _nm_connection_verify (NMConnection *connection, GError **error); -/*************************************************************/ +/*****************************************************************************/ /** * nm_connection_lookup_setting_type: @@ -1638,7 +1638,7 @@ nm_connection_get_virtual_device_description (NMConnection *connection) return g_strdup_printf ("%s (%s)", display_type, iface); } -/*************************************************************/ +/*****************************************************************************/ /** * nm_connection_get_setting_802_1x: @@ -2064,7 +2064,7 @@ nm_connection_get_setting_vlan (NMConnection *connection) return (NMSettingVlan *) nm_connection_get_setting (connection, NM_TYPE_SETTING_VLAN); } -/*************************************************************/ +/*****************************************************************************/ static void nm_connection_init (NMConnection *connection) diff --git a/libnm-util/nm-param-spec-specialized.c b/libnm-util/nm-param-spec-specialized.c index 0bb32b7fed..7021e108fc 100644 --- a/libnm-util/nm-param-spec-specialized.c +++ b/libnm-util/nm-param-spec-specialized.c @@ -36,7 +36,7 @@ struct _NMParamSpecSpecialized { #include "nm-dbus-glib-types.h" -/***********************************************************/ +/*****************************************************************************/ /* _gvalues_compare */ static gint _gvalues_compare (const GValue *value1, const GValue *value2); @@ -561,7 +561,7 @@ _gvalues_compare (const GValue *value1, const GValue *value2) return ret; } -/***********************************************************/ +/*****************************************************************************/ static void param_specialized_init (GParamSpec *pspec) @@ -638,7 +638,7 @@ _nm_param_spec_specialized (const char *name, return G_PARAM_SPEC (pspec); } -/***********************************************************/ +/*****************************************************************************/ /* Tests */ #if 0 diff --git a/libnm-util/nm-setting-bridge-port.c b/libnm-util/nm-setting-bridge-port.c index 3d11e73cfa..3d671ae376 100644 --- a/libnm-util/nm-setting-bridge-port.c +++ b/libnm-util/nm-setting-bridge-port.c @@ -84,7 +84,7 @@ enum { LAST_PROP }; -/**************************************************************************/ +/*****************************************************************************/ /** * nm_setting_bridge_port_get_priority: @@ -134,7 +134,7 @@ nm_setting_bridge_port_get_hairpin_mode (NMSettingBridgePort *setting) return NM_SETTING_BRIDGE_PORT_GET_PRIVATE (setting)->hairpin_mode; } -/**************************************************************************/ +/*****************************************************************************/ #define BR_MAX_PORT_PRIORITY 63 #define BR_DEF_PRIORITY 32 @@ -174,7 +174,7 @@ verify (NMSetting *setting, GSList *all_settings, GError **error) return TRUE; } -/**************************************************************************/ +/*****************************************************************************/ /** * nm_setting_bridge_port_new: diff --git a/libnm-util/nm-setting-connection.c b/libnm-util/nm-setting-connection.c index 16c858dc5c..e6fe2fe4bf 100644 --- a/libnm-util/nm-setting-connection.c +++ b/libnm-util/nm-setting-connection.c @@ -112,7 +112,7 @@ enum { LAST_PROP }; -/***********************************************************************/ +/*****************************************************************************/ #define PERM_USER_PREFIX "user:" @@ -193,7 +193,7 @@ permission_free (Permission *p) g_slice_free (Permission, p); } -/***********************************************************************/ +/*****************************************************************************/ /** * nm_setting_connection_new: diff --git a/libnm-util/nm-setting-dcb.c b/libnm-util/nm-setting-dcb.c index 7888a71100..f5c3ab0be4 100644 --- a/libnm-util/nm-setting-dcb.c +++ b/libnm-util/nm-setting-dcb.c @@ -578,7 +578,7 @@ nm_setting_dcb_set_priority_traffic_class (NMSettingDcb *setting, } } -/******************************************************************/ +/*****************************************************************************/ #define DCB_FLAGS_ALL (NM_SETTING_DCB_FLAG_ENABLE | \ NM_SETTING_DCB_FLAG_ADVERTISE | \ @@ -796,7 +796,7 @@ verify (NMSetting *setting, GSList *all_settings, GError **error) return TRUE; } -/******************************************************************/ +/*****************************************************************************/ static void nm_setting_dcb_init (NMSettingDcb *setting) diff --git a/libnm-util/nm-setting-generic.c b/libnm-util/nm-setting-generic.c index 39134e8bd2..573be86a5b 100644 --- a/libnm-util/nm-setting-generic.c +++ b/libnm-util/nm-setting-generic.c @@ -71,7 +71,7 @@ typedef struct { int dummy; } NMSettingGenericPrivate; -/**************************************************************************/ +/*****************************************************************************/ /** * nm_setting_generic_new: diff --git a/libnm-util/nm-setting-ip6-config.c b/libnm-util/nm-setting-ip6-config.c index ac1645883f..9ad93ac16c 100644 --- a/libnm-util/nm-setting-ip6-config.c +++ b/libnm-util/nm-setting-ip6-config.c @@ -1306,7 +1306,7 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class) G_PARAM_STATIC_STRINGS)); } -/********************************************************************/ +/*****************************************************************************/ struct NMIP6Address { guint32 refcount; @@ -1521,7 +1521,7 @@ nm_ip6_address_set_gateway (NMIP6Address *address, const struct in6_addr *gatewa memcpy (&address->gateway, gateway, sizeof (struct in6_addr)); } -/********************************************************************/ +/*****************************************************************************/ struct NMIP6Route { guint32 refcount; diff --git a/libnm-util/nm-setting-vlan.c b/libnm-util/nm-setting-vlan.c index 32ad9394f1..3437d69772 100644 --- a/libnm-util/nm-setting-vlan.c +++ b/libnm-util/nm-setting-vlan.c @@ -515,7 +515,7 @@ nm_setting_vlan_clear_priorities (NMSettingVlan *setting, NMVlanPriorityMap map) set_map (setting, map, NULL); } -/*********************************************************************/ +/*****************************************************************************/ static void nm_setting_vlan_init (NMSettingVlan *setting) diff --git a/libnm-util/nm-setting.c b/libnm-util/nm-setting.c index c0d82b4263..53e8f34384 100644 --- a/libnm-util/nm-setting.c +++ b/libnm-util/nm-setting.c @@ -82,7 +82,7 @@ enum { PROP_LAST }; -/*************************************************************/ +/*****************************************************************************/ static GHashTable *registered_settings = NULL; static GHashTable *registered_settings_by_type = NULL; @@ -124,7 +124,7 @@ _ensure_registered_constructor (void) } \ } G_STMT_END -/*************************************************************/ +/*****************************************************************************/ /* * _nm_register_setting: @@ -286,7 +286,7 @@ _nm_setting_compare_priority (gconstpointer a, gconstpointer b) return 1; } -/*************************************************************/ +/*****************************************************************************/ static void destroy_gvalue (gpointer data) diff --git a/libnm-util/nm-utils.c b/libnm-util/nm-utils.c index f22b4f74b8..fcb6bfd4e5 100644 --- a/libnm-util/nm-utils.c +++ b/libnm-util/nm-utils.c @@ -1730,7 +1730,7 @@ nm_utils_file_is_pkcs12 (const char *filename) return crypto_is_pkcs12_file (filename, NULL); } -/**********************************************************************************************/ +/*****************************************************************************/ /** * nm_utils_file_search_in_paths: @@ -1804,7 +1804,7 @@ NOT_FOUND: return NULL; } -/**********************************************************************************************/ +/*****************************************************************************/ /* Band, channel/frequency stuff for wireless */ struct cf_pair { @@ -2577,7 +2577,7 @@ nm_utils_check_virtual_device_compatibility (GType virtual_type, GType other_typ } } -/***********************************************************/ +/*****************************************************************************/ /* Unused prototypes to make the compiler happy */ gconstpointer nm_utils_get_private (void); diff --git a/libnm-util/tests/test-general.c b/libnm-util/tests/test-general.c index 8373ae1197..daa948941d 100644 --- a/libnm-util/tests/test-general.c +++ b/libnm-util/tests/test-general.c @@ -2440,7 +2440,7 @@ test_libnm_linking (void) } #endif /* __SANITIZE_ADDRESS__ */ -/******************************************************************************/ +/*****************************************************************************/ static void _test_uuid (const char *expected_uuid, const char *str) @@ -2480,7 +2480,7 @@ test_nm_utils_uuid_generate_from_string (void) g_test_assert_expected_messages (); } -/******************************************************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/libnm/nm-access-point.c b/libnm/nm-access-point.c index d1dd1c3fdd..67b8550603 100644 --- a/libnm/nm-access-point.c +++ b/libnm/nm-access-point.c @@ -381,7 +381,7 @@ nm_access_point_filter_connections (NMAccessPoint *ap, const GPtrArray *connecti return filtered; } -/************************************************************/ +/*****************************************************************************/ static void nm_access_point_init (NMAccessPoint *ap) diff --git a/libnm/nm-client.c b/libnm/nm-client.c index 64c0d9de1d..17dc41c6d7 100644 --- a/libnm/nm-client.c +++ b/libnm/nm-client.c @@ -97,7 +97,7 @@ enum { static guint signals[LAST_SIGNAL] = { 0 }; -/**********************************************************************/ +/*****************************************************************************/ /** * nm_client_error_quark: @@ -116,7 +116,7 @@ nm_client_error_quark (void) return quark; } -/**********************************************************************/ +/*****************************************************************************/ static void nm_client_init (NMClient *client) @@ -698,9 +698,9 @@ nm_client_save_hostname_finish (NMClient *client, return g_simple_async_result_get_op_res_gboolean (simple); } -/****************************************************************/ +/*****************************************************************************/ /* Devices */ -/****************************************************************/ +/*****************************************************************************/ /** * nm_client_get_devices: @@ -787,9 +787,9 @@ nm_client_get_device_by_iface (NMClient *client, const char *iface) return nm_manager_get_device_by_iface (NM_CLIENT_GET_PRIVATE (client)->manager, iface); } -/****************************************************************/ +/*****************************************************************************/ /* Active Connections */ -/****************************************************************/ +/*****************************************************************************/ /** * nm_client_get_active_connections: @@ -1180,9 +1180,9 @@ nm_client_deactivate_connection_finish (NMClient *client, return g_simple_async_result_get_op_res_gboolean (simple); } -/****************************************************************/ +/*****************************************************************************/ /* Connections */ -/****************************************************************/ +/*****************************************************************************/ /** * nm_client_get_connections: @@ -1602,7 +1602,7 @@ nm_client_reload_connections_finish (NMClient *client, return g_simple_async_result_get_op_res_gboolean (simple); } -/****************************************************************/ +/*****************************************************************************/ /** * nm_client_new: diff --git a/libnm/nm-device-adsl.c b/libnm/nm-device-adsl.c index 7608ff3916..6c66f717f8 100644 --- a/libnm/nm-device-adsl.c +++ b/libnm/nm-device-adsl.c @@ -84,7 +84,7 @@ get_setting_type (NMDevice *device) return NM_TYPE_SETTING_ADSL; } -/******************************************************************/ +/*****************************************************************************/ static void nm_device_adsl_init (NMDeviceAdsl *device) diff --git a/libnm/nm-device-bond.c b/libnm/nm-device-bond.c index 483d9d009b..e5977c6664 100644 --- a/libnm/nm-device-bond.c +++ b/libnm/nm-device-bond.c @@ -130,7 +130,7 @@ get_hw_address (NMDevice *device) return nm_device_bond_get_hw_address (NM_DEVICE_BOND (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_bond_init (NMDeviceBond *device) diff --git a/libnm/nm-device-bridge.c b/libnm/nm-device-bridge.c index c6bf135997..83ad963410 100644 --- a/libnm/nm-device-bridge.c +++ b/libnm/nm-device-bridge.c @@ -130,7 +130,7 @@ get_hw_address (NMDevice *device) return nm_device_bridge_get_hw_address (NM_DEVICE_BRIDGE (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_bridge_init (NMDeviceBridge *device) diff --git a/libnm/nm-device-bt.c b/libnm/nm-device-bt.c index dc28ad89f4..2c039d941e 100644 --- a/libnm/nm-device-bt.c +++ b/libnm/nm-device-bt.c @@ -178,7 +178,7 @@ get_hw_address (NMDevice *device) return nm_device_bt_get_hw_address (NM_DEVICE_BT (device)); } -/************************************************************/ +/*****************************************************************************/ static void nm_device_bt_init (NMDeviceBt *device) diff --git a/libnm/nm-device-ethernet.c b/libnm/nm-device-ethernet.c index 825ed7b392..15ca0257e6 100644 --- a/libnm/nm-device-ethernet.c +++ b/libnm/nm-device-ethernet.c @@ -277,7 +277,7 @@ get_hw_address (NMDevice *device) return nm_device_ethernet_get_hw_address (NM_DEVICE_ETHERNET (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_ethernet_init (NMDeviceEthernet *device) diff --git a/libnm/nm-device-generic.c b/libnm/nm-device-generic.c index 069ca0eafa..9dd1c945ec 100644 --- a/libnm/nm-device-generic.c +++ b/libnm/nm-device-generic.c @@ -62,7 +62,7 @@ nm_device_generic_get_hw_address (NMDeviceGeneric *device) return NM_DEVICE_GENERIC_GET_PRIVATE (device)->hw_address; } -/***********************************************************/ +/*****************************************************************************/ static const char * get_type_description (NMDevice *device) @@ -108,7 +108,7 @@ get_setting_type (NMDevice *device) return NM_TYPE_SETTING_GENERIC; } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_generic_init (NMDeviceGeneric *device) diff --git a/libnm/nm-device-infiniband.c b/libnm/nm-device-infiniband.c index 6770b1c53e..0f92f8304b 100644 --- a/libnm/nm-device-infiniband.c +++ b/libnm/nm-device-infiniband.c @@ -127,7 +127,7 @@ get_hw_address (NMDevice *device) return nm_device_infiniband_get_hw_address (NM_DEVICE_INFINIBAND (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_infiniband_init (NMDeviceInfiniband *device) diff --git a/libnm/nm-device-ip-tunnel.c b/libnm/nm-device-ip-tunnel.c index f5b3cad6a3..6410c48c4d 100644 --- a/libnm/nm-device-ip-tunnel.c +++ b/libnm/nm-device-ip-tunnel.c @@ -264,7 +264,7 @@ get_setting_type (NMDevice *device) return NM_TYPE_SETTING_IP_TUNNEL; } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_ip_tunnel_init (NMDeviceIPTunnel *device) diff --git a/libnm/nm-device-macvlan.c b/libnm/nm-device-macvlan.c index 825c9197c1..610bdc35f2 100644 --- a/libnm/nm-device-macvlan.c +++ b/libnm/nm-device-macvlan.c @@ -181,7 +181,7 @@ get_setting_type (NMDevice *device) return NM_TYPE_SETTING_MACVLAN; } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_macvlan_init (NMDeviceMacvlan *device) diff --git a/libnm/nm-device-modem.c b/libnm/nm-device-modem.c index d442dc0342..ae011812f2 100644 --- a/libnm/nm-device-modem.c +++ b/libnm/nm-device-modem.c @@ -153,7 +153,7 @@ get_setting_type (NMDevice *device) return G_TYPE_INVALID; } -/*******************************************************************/ +/*****************************************************************************/ static void nm_device_modem_init (NMDeviceModem *device) diff --git a/libnm/nm-device-olpc-mesh.c b/libnm/nm-device-olpc-mesh.c index 984ea4e42d..a11050f5b4 100644 --- a/libnm/nm-device-olpc-mesh.c +++ b/libnm/nm-device-olpc-mesh.c @@ -125,7 +125,7 @@ get_setting_type (NMDevice *device) return NM_TYPE_SETTING_OLPC_MESH; } -/**************************************************************/ +/*****************************************************************************/ static void nm_device_olpc_mesh_init (NMDeviceOlpcMesh *device) diff --git a/libnm/nm-device-team.c b/libnm/nm-device-team.c index 3955e10561..8179bd52f4 100644 --- a/libnm/nm-device-team.c +++ b/libnm/nm-device-team.c @@ -151,7 +151,7 @@ get_setting_type (NMDevice *device) return NM_TYPE_SETTING_TEAM; } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_team_init (NMDeviceTeam *device) diff --git a/libnm/nm-device-tun.c b/libnm/nm-device-tun.c index b227f5b13e..e4e412f8fe 100644 --- a/libnm/nm-device-tun.c +++ b/libnm/nm-device-tun.c @@ -234,7 +234,7 @@ get_hw_address (NMDevice *device) return nm_device_tun_get_hw_address (NM_DEVICE_TUN (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_tun_init (NMDeviceTun *device) diff --git a/libnm/nm-device-vlan.c b/libnm/nm-device-vlan.c index 843dda02df..7083b24484 100644 --- a/libnm/nm-device-vlan.c +++ b/libnm/nm-device-vlan.c @@ -164,7 +164,7 @@ get_hw_address (NMDevice *device) return nm_device_vlan_get_hw_address (NM_DEVICE_VLAN (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_vlan_init (NMDeviceVlan *device) diff --git a/libnm/nm-device-vxlan.c b/libnm/nm-device-vxlan.c index 335498ee4a..86b5fca8e7 100644 --- a/libnm/nm-device-vxlan.c +++ b/libnm/nm-device-vxlan.c @@ -410,7 +410,7 @@ get_hw_address (NMDevice *device) return nm_device_vxlan_get_hw_address (NM_DEVICE_VXLAN (device)); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_vxlan_init (NMDeviceVxlan *device) diff --git a/libnm/nm-device-wifi.c b/libnm/nm-device-wifi.c index 3fde324c05..790ddf4ca6 100644 --- a/libnm/nm-device-wifi.c +++ b/libnm/nm-device-wifi.c @@ -656,7 +656,7 @@ get_hw_address (NMDevice *device) return nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (device)); } -/**************************************************************/ +/*****************************************************************************/ static void nm_device_wifi_init (NMDeviceWifi *device) diff --git a/libnm/nm-device-wimax.c b/libnm/nm-device-wimax.c index e26efedbae..e14925f778 100644 --- a/libnm/nm-device-wimax.c +++ b/libnm/nm-device-wimax.c @@ -350,7 +350,7 @@ get_hw_address (NMDevice *device) return nm_device_wimax_get_hw_address (NM_DEVICE_WIMAX (device)); } -/**************************************************************/ +/*****************************************************************************/ static void nm_device_wimax_init (NMDeviceWimax *device) diff --git a/libnm/nm-manager.c b/libnm/nm-manager.c index c3d0c51db0..d9d21b823d 100644 --- a/libnm/nm-manager.c +++ b/libnm/nm-manager.c @@ -128,7 +128,7 @@ static void nm_running_changed_cb (GObject *object, GParamSpec *pspec, gpointer user_data); -/**********************************************************************/ +/*****************************************************************************/ static void nm_manager_init (NMManager *manager) @@ -657,9 +657,9 @@ nm_manager_check_connectivity_finish (NMManager *manager, return (NMConnectivityState) g_simple_async_result_get_op_res_gssize (simple); } -/****************************************************************/ +/*****************************************************************************/ /* Devices */ -/****************************************************************/ +/*****************************************************************************/ const GPtrArray * nm_manager_get_devices (NMManager *manager) @@ -721,9 +721,9 @@ nm_manager_get_device_by_iface (NMManager *manager, const char *iface) return device; } -/****************************************************************/ +/*****************************************************************************/ /* Active Connections */ -/****************************************************************/ +/*****************************************************************************/ const GPtrArray * nm_manager_get_active_connections (NMManager *manager) @@ -1184,7 +1184,7 @@ nm_manager_deactivate_connection_finish (NMManager *manager, return g_simple_async_result_get_op_res_gboolean (simple); } -/****************************************************************/ +/*****************************************************************************/ static void free_devices (NMManager *manager, gboolean in_dispose) @@ -1320,7 +1320,7 @@ nm_running_changed_cb (GObject *object, } } -/****************************************************************/ +/*****************************************************************************/ static void constructed (GObject *object) diff --git a/libnm/nm-object.c b/libnm/nm-object.c index 337ca69862..4c417c3202 100644 --- a/libnm/nm-object.c +++ b/libnm/nm-object.c @@ -1509,7 +1509,7 @@ _nm_object_get_nm_running (NMObject *self) return NM_OBJECT_GET_PRIVATE (self)->nm_running; } -/**************************************************************/ +/*****************************************************************************/ static void on_name_owner_changed (GObject *proxy, @@ -1588,7 +1588,7 @@ init_sync (GInitable *initable, GCancellable *cancellable, GError **error) return _nm_object_reload_properties (self, error); } -/**************************************************************/ +/*****************************************************************************/ typedef struct { NMObject *object; @@ -1724,7 +1724,7 @@ init_finish (GAsyncInitable *initable, GAsyncResult *result, GError **error) return TRUE; } -/**************************************************************/ +/*****************************************************************************/ static void nm_object_initable_iface_init (GInitableIface *iface) diff --git a/libnm/nm-remote-connection.c b/libnm/nm-remote-connection.c index eb2874a049..6ad5e5f506 100644 --- a/libnm/nm-remote-connection.c +++ b/libnm/nm-remote-connection.c @@ -65,7 +65,7 @@ typedef struct { #define NM_REMOTE_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_REMOTE_CONNECTION, NMRemoteConnectionPrivate)) -/****************************************************************/ +/*****************************************************************************/ /** * nm_remote_connection_commit_changes: @@ -557,7 +557,7 @@ nm_remote_connection_get_visible (NMRemoteConnection *connection) return NM_REMOTE_CONNECTION_GET_PRIVATE (connection)->visible; } -/****************************************************************/ +/*****************************************************************************/ static void replace_settings (NMRemoteConnection *self, GVariant *new_settings) @@ -615,7 +615,7 @@ updated_cb (NMDBusSettingsConnection *proxy, gpointer user_data) g_object_ref (self)); } -/****************************************************************/ +/*****************************************************************************/ static void init_dbus (NMObject *object) diff --git a/libnm/nm-remote-settings.c b/libnm/nm-remote-settings.c index b04f4f2ac8..fa3a0f09f5 100644 --- a/libnm/nm-remote-settings.c +++ b/libnm/nm-remote-settings.c @@ -73,7 +73,7 @@ enum { }; static guint signals[LAST_SIGNAL] = { 0 }; -/**********************************************************************/ +/*****************************************************************************/ typedef struct { NMRemoteSettings *self; @@ -660,7 +660,7 @@ nm_running_changed (GObject *object, g_object_thaw_notify (object); } -/****************************************************************/ +/*****************************************************************************/ static void nm_remote_settings_init (NMRemoteSettings *self) diff --git a/libnm/nm-secret-agent-old.c b/libnm/nm-secret-agent-old.c index 02a3f685ca..1a078183ac 100644 --- a/libnm/nm-secret-agent-old.c +++ b/libnm/nm-secret-agent-old.c @@ -70,7 +70,7 @@ enum { LAST_PROP }; -/*************************************************************/ +/*****************************************************************************/ static void _internal_unregister (NMSecretAgentOld *self) @@ -472,7 +472,7 @@ impl_secret_agent_old_delete_secrets (NMSecretAgentOld *self, g_object_unref (connection); } -/**************************************************************/ +/*****************************************************************************/ static gboolean check_nm_running (NMSecretAgentOld *self, GError **error) @@ -493,7 +493,7 @@ check_nm_running (NMSecretAgentOld *self, GError **error) return FALSE; } -/**************************************************************/ +/*****************************************************************************/ /** * nm_secret_agent_old_register: @@ -878,7 +878,7 @@ nm_secret_agent_old_get_registered (NMSecretAgentOld *self) return NM_SECRET_AGENT_OLD_GET_PRIVATE (self)->registered; } -/**************************************************************/ +/*****************************************************************************/ /** * nm_secret_agent_old_get_secrets: @@ -984,7 +984,7 @@ nm_secret_agent_old_delete_secrets (NMSecretAgentOld *self, user_data); } -/**************************************************************/ +/*****************************************************************************/ static gboolean validate_identifier (const char *identifier) diff --git a/libnm/nm-vpn-editor.h b/libnm/nm-vpn-editor.h index 2ee34525d8..d450bbd6ad 100644 --- a/libnm/nm-vpn-editor.h +++ b/libnm/nm-vpn-editor.h @@ -34,9 +34,9 @@ G_BEGIN_DECLS -/**************************************************/ +/*****************************************************************************/ /* Editor interface */ -/**************************************************/ +/*****************************************************************************/ #define NM_TYPE_VPN_EDITOR (nm_vpn_editor_get_type ()) #define NM_VPN_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_VPN_EDITOR, NMVpnEditor)) diff --git a/libnm/nm-vpn-plugin-old.c b/libnm/nm-vpn-plugin-old.c index 634e61a232..cfaefdf264 100644 --- a/libnm/nm-vpn-plugin-old.c +++ b/libnm/nm-vpn-plugin-old.c @@ -534,7 +534,7 @@ impl_vpn_plugin_old_connect_interactive (NMVpnPluginOld *plugin, _connect_generic (plugin, context, connection, details); } -/***************************************************************/ +/*****************************************************************************/ static void impl_vpn_plugin_old_need_secrets (NMVpnPluginOld *plugin, @@ -681,7 +681,7 @@ nm_vpn_plugin_old_secrets_required (NMVpnPluginOld *plugin, g_signal_emit (plugin, signals[SECRETS_REQUIRED], 0, message, hints); } -/***************************************************************/ +/*****************************************************************************/ #define DATA_KEY_TAG "DATA_KEY=" #define DATA_VAL_TAG "DATA_VAL=" @@ -847,7 +847,7 @@ nm_vpn_plugin_old_get_secret_flags (GHashTable *data, return success; } -/***************************************************************/ +/*****************************************************************************/ static void impl_vpn_plugin_old_disconnect (NMVpnPluginOld *plugin, @@ -902,7 +902,7 @@ impl_vpn_plugin_old_set_failure (NMVpnPluginOld *plugin, g_dbus_method_invocation_return_value (context, NULL); } -/*********************************************************************/ +/*****************************************************************************/ static void sigterm_handler (int signum) @@ -924,7 +924,7 @@ setup_unix_signal_handler (void) sigaction (SIGTERM, &action, NULL); } -/*********************************************************************/ +/*****************************************************************************/ static void one_plugin_destroyed (gpointer data, diff --git a/libnm/nm-vpn-service-plugin.c b/libnm/nm-vpn-service-plugin.c index 6431629669..8b781f08e3 100644 --- a/libnm/nm-vpn-service-plugin.c +++ b/libnm/nm-vpn-service-plugin.c @@ -554,7 +554,7 @@ impl_vpn_service_plugin_connect_interactive (NMVpnServicePlugin *plugin, _connect_generic (plugin, context, connection, details); } -/***************************************************************/ +/*****************************************************************************/ static void impl_vpn_service_plugin_need_secrets (NMVpnServicePlugin *plugin, @@ -702,7 +702,7 @@ nm_vpn_service_plugin_secrets_required (NMVpnServicePlugin *plugin, nmdbus_vpn_plugin_emit_secrets_required (priv->dbus_vpn_service_plugin, message, hints); } -/***************************************************************/ +/*****************************************************************************/ #define DATA_KEY_TAG "DATA_KEY=" #define DATA_VAL_TAG "DATA_VAL=" @@ -868,7 +868,7 @@ nm_vpn_service_plugin_get_secret_flags (GHashTable *data, return success; } -/***************************************************************/ +/*****************************************************************************/ static void impl_vpn_service_plugin_disconnect (NMVpnServicePlugin *plugin, @@ -923,7 +923,7 @@ impl_vpn_service_plugin_set_failure (NMVpnServicePlugin *plugin, g_dbus_method_invocation_return_value (context, NULL); } -/*********************************************************************/ +/*****************************************************************************/ static void sigterm_handler (int signum) @@ -945,7 +945,7 @@ setup_unix_signal_handler (void) sigaction (SIGTERM, &action, NULL); } -/*********************************************************************/ +/*****************************************************************************/ static void one_plugin_destroyed (gpointer data, diff --git a/libnm/nm-wimax-nsp.c b/libnm/nm-wimax-nsp.c index d544b0d47f..c15fddd900 100644 --- a/libnm/nm-wimax-nsp.c +++ b/libnm/nm-wimax-nsp.c @@ -172,7 +172,7 @@ nm_wimax_nsp_filter_connections (NMWimaxNsp *nsp, const GPtrArray *connections) return filtered; } -/************************************************************/ +/*****************************************************************************/ static void nm_wimax_nsp_init (NMWimaxNsp *nsp) diff --git a/libnm/tests/test-nm-client.c b/libnm/tests/test-nm-client.c index 3a7c4d5dde..a45d47c2a7 100644 --- a/libnm/tests/test-nm-client.c +++ b/libnm/tests/test-nm-client.c @@ -29,7 +29,7 @@ static GMainLoop *loop = NULL; static NMTstcServiceInfo *sinfo; -/*******************************************************************/ +/*****************************************************************************/ static gboolean loop_quit (gpointer user_data) @@ -38,7 +38,7 @@ loop_quit (gpointer user_data) return G_SOURCE_REMOVE; } -/*******************************************************************/ +/*****************************************************************************/ static void devices_notify_cb (NMClient *c, @@ -107,7 +107,7 @@ test_device_added (void) g_clear_pointer (&sinfo, nmtstc_service_cleanup); } -/*******************************************************************/ +/*****************************************************************************/ typedef enum { SIGNAL_FIRST = 0x01, @@ -206,7 +206,7 @@ test_device_added_signal_after_init (void) g_clear_pointer (&sinfo, nmtstc_service_cleanup); } -/*******************************************************************/ +/*****************************************************************************/ static const char *expected_bssid = "66:55:44:33:22:11"; @@ -405,7 +405,7 @@ test_wifi_ap_added_removed (void) g_clear_pointer (&sinfo, nmtstc_service_cleanup); } -/*******************************************************************/ +/*****************************************************************************/ static const char *expected_nsp_name = "Clear"; @@ -604,7 +604,7 @@ test_wimax_nsp_added_removed (void) g_clear_pointer (&sinfo, nmtstc_service_cleanup); } -/*******************************************************************/ +/*****************************************************************************/ typedef struct { GMainLoop *loop; @@ -1228,7 +1228,7 @@ test_device_connection_compatibility (void) g_clear_pointer (&sinfo, nmtstc_service_cleanup); } -/*******************************************************************/ +/*****************************************************************************/ static gboolean _test_connection_invalid_find_connections (gpointer element, gpointer needle, gpointer user_data) @@ -1568,7 +1568,7 @@ test_connection_invalid (void) #undef ASSERT_IDX } -/*******************************************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/libnm/tests/test-remote-settings-client.c b/libnm/tests/test-remote-settings-client.c index 8f59656d75..fda943c804 100644 --- a/libnm/tests/test-remote-settings-client.c +++ b/libnm/tests/test-remote-settings-client.c @@ -31,7 +31,7 @@ static NMClient *client = NULL; GDBusConnection *bus = NULL; NMRemoteConnection *remote = NULL; -/*******************************************************************/ +/*****************************************************************************/ static void add_cb (GObject *s, @@ -87,7 +87,7 @@ test_add_connection (void) g_object_unref (connection); } -/*******************************************************************/ +/*****************************************************************************/ static void set_visible_cb (GObject *proxy, @@ -194,7 +194,7 @@ test_make_invisible (void) g_object_unref (proxy); } -/*******************************************************************/ +/*****************************************************************************/ static void vis_new_connection_cb (NMClient *foo, @@ -271,7 +271,7 @@ test_make_visible (void) g_object_unref (proxy); } -/*******************************************************************/ +/*****************************************************************************/ static void deleted_cb (GObject *proxy, @@ -354,7 +354,7 @@ test_remove_connection (void) g_object_unref (proxy); } -/*******************************************************************/ +/*****************************************************************************/ #define TEST_ADD_REMOVE_ID "add-remove-test-connection" @@ -413,7 +413,7 @@ test_add_remove_connection (void) g_object_unref (connection); } -/*******************************************************************/ +/*****************************************************************************/ static void add_bad_cb (GObject *s, @@ -456,7 +456,7 @@ test_add_bad_connection (void) g_assert (remote == NULL); } -/*******************************************************************/ +/*****************************************************************************/ static void save_hostname_cb (GObject *s, @@ -495,7 +495,7 @@ test_save_hostname (void) g_assert (remote == NULL); } -/*******************************************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/libnm/tests/test-secret-agent.c b/libnm/tests/test-secret-agent.c index 9756186681..e4ebe3e0e9 100644 --- a/libnm/tests/test-secret-agent.c +++ b/libnm/tests/test-secret-agent.c @@ -28,7 +28,7 @@ #include "nm-test-libnm-utils.h" -/*******************************************************************/ +/*****************************************************************************/ enum { SECRET_REQUESTED, @@ -176,7 +176,7 @@ test_secret_agent_new (void) return agent; } -/*******************************************************************/ +/*****************************************************************************/ typedef struct { NMTstcServiceInfo *sinfo; @@ -341,7 +341,7 @@ test_cleanup (TestSecretAgentData *sadata, gconstpointer test_data) g_free (sadata->con_id); } -/*******************************************************************/ +/*****************************************************************************/ static void connection_activated_none_cb (GObject *c, @@ -371,7 +371,7 @@ test_secret_agent_none (TestSecretAgentData *sadata, gconstpointer test_data) g_main_loop_run (sadata->loop); } -/*******************************************************************/ +/*****************************************************************************/ static char * secrets_requested_no_secrets_cb (TestSecretAgent *agent, @@ -422,7 +422,7 @@ test_secret_agent_no_secrets (TestSecretAgentData *sadata, gconstpointer test_da g_assert_cmpint (sadata->secrets_requested, ==, 1); } -/*******************************************************************/ +/*****************************************************************************/ static void connection_activated_cancel_cb (GObject *c, @@ -473,7 +473,7 @@ test_secret_agent_cancel (TestSecretAgentData *sadata, gconstpointer test_data) g_assert_cmpint (sadata->secrets_requested, ==, 1); } -/*******************************************************************/ +/*****************************************************************************/ static void connection_activated_good_cb (GObject *c, @@ -618,7 +618,7 @@ test_secret_agent_auto_register (void) g_main_loop_unref (loop); } -/*******************************************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/shared/nm-common-macros.h b/shared/nm-common-macros.h index 6e0769cca4..39acf56f7a 100644 --- a/shared/nm-common-macros.h +++ b/shared/nm-common-macros.h @@ -22,7 +22,7 @@ #ifndef __NM_COMMON_MACROS_H__ #define __NM_COMMON_MACROS_H__ -/******************************************************************************/ +/*****************************************************************************/ #define NM_AUTH_PERMISSION_ENABLE_DISABLE_NETWORK "org.freedesktop.NetworkManager.enable-disable-network" #define NM_AUTH_PERMISSION_SLEEP_WAKE "org.freedesktop.NetworkManager.sleep-wake" @@ -55,6 +55,6 @@ NM_CLONED_MAC_IS_SPECIAL (const char *str) NM_CLONED_MAC_STABLE); } -/******************************************************************************/ +/*****************************************************************************/ #endif /* __NM_COMMON_MACROS_H__ */ diff --git a/shared/nm-utils/nm-macros-internal.h b/shared/nm-utils/nm-macros-internal.h index d116fb873a..1451053580 100644 --- a/shared/nm-utils/nm-macros-internal.h +++ b/shared/nm-utils/nm-macros-internal.h @@ -26,7 +26,7 @@ #include "nm-glib.h" -/********************************************************/ +/*****************************************************************************/ #define _nm_packed __attribute__ ((packed)) #define _nm_unused __attribute__ ((unused)) @@ -59,7 +59,7 @@ _nm_auto_free_gstring_impl (GString **str) } #define nm_auto_free_gstring nm_auto(_nm_auto_free_gstring_impl) -/********************************************************/ +/*****************************************************************************/ /* http://stackoverflow.com/a/11172679 */ #define _NM_UTILS_MACRO_FIRST(...) __NM_UTILS_MACRO_FIRST_HELPER(__VA_ARGS__, throwaway) @@ -78,7 +78,7 @@ _nm_auto_free_gstring_impl (GString **str) TWOORMORE, TWOORMORE, TWOORMORE, ONE, throwaway) #define __NM_UTILS_MACRO_REST_SELECT_20TH(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, ...) a20 -/********************************************************/ +/*****************************************************************************/ /* http://stackoverflow.com/a/2124385/354393 */ @@ -103,7 +103,7 @@ _nm_auto_free_gstring_impl (GString **str) 19,18,17,16,15,14,13,12,11,10, \ 9,8,7,6,5,4,3,2,1,0 -/********************************************************/ +/*****************************************************************************/ #if defined (__GNUC__) #define _NM_PRAGMA_WARNING_DO(warning) G_STRINGIFY(GCC diagnostic ignored warning) @@ -139,7 +139,7 @@ _nm_auto_free_gstring_impl (GString **str) #define NM_PRAGMA_WARNING_REENABLE #endif -/********************************************************/ +/*****************************************************************************/ /** * NM_G_ERROR_MSG: @@ -159,7 +159,7 @@ NM_G_ERROR_MSG (GError *error) return error ? (error->message ? : "(null)") : "(no-error)"; \ } -/********************************************************/ +/*****************************************************************************/ /* macro to return strlen() of a compile time string. */ #define NM_STRLEN(str) ( sizeof ("" str) - 1 ) @@ -178,7 +178,7 @@ NM_G_ERROR_MSG (GError *error) } \ } G_STMT_END -/********************************************************/ +/*****************************************************************************/ #define _NM_IN_SET_EVAL_1( op, _x, y) (_x == (y)) #define _NM_IN_SET_EVAL_2( op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_1 (op, _x, __VA_ARGS__) @@ -214,7 +214,7 @@ NM_G_ERROR_MSG (GError *error) * side-effects. */ #define NM_IN_SET_SE(x, ...) _NM_IN_SET_EVAL_N(|, x, NM_NARG (__VA_ARGS__), __VA_ARGS__) -/********************************************************/ +/*****************************************************************************/ static inline gboolean _NM_IN_STRSET_streq (const char *x, const char *s) @@ -373,6 +373,27 @@ nm_g_object_unref (gpointer obj) g_object_unref (obj); } +/* basically, replaces + * g_clear_pointer (&location, g_free) + * with + * nm_clear_g_free (&location) + * + * Another advantage is that by using a macro and typeof(), it is more + * typesafe and gives you for example a compiler warning when pp is a const + * pointer or points to a const-pointer. + */ +#define nm_clear_g_free(pp) \ + ({ \ + typeof (*(pp)) *_pp = (pp); \ + typeof (**_pp) *_p = *_pp; \ + \ + if (_p) { \ + *_pp = NULL; \ + g_free (_p); \ + } \ + !!_p; \ + }) + static inline gboolean nm_clear_g_source (guint *id) { diff --git a/shared/nm-utils/nm-shared-utils.h b/shared/nm-utils/nm-shared-utils.h index cfa8f994f7..f77fb0e353 100644 --- a/shared/nm-utils/nm-shared-utils.h +++ b/shared/nm-utils/nm-shared-utils.h @@ -22,14 +22,14 @@ #ifndef __NM_SHARED_UTILS_H__ #define __NM_SHARED_UTILS_H__ -/******************************************************************************/ +/*****************************************************************************/ gint64 _nm_utils_ascii_str_to_int64 (const char *str, guint base, gint64 min, gint64 max, gint64 fallback); gint _nm_utils_ascii_str_to_bool (const char *str, gint default_value); -/******************************************************************************/ +/*****************************************************************************/ /** * NMUtilsError: @@ -54,13 +54,13 @@ void nm_utils_error_set_cancelled (GError **error, gboolean nm_utils_error_is_cancelled (GError *error, gboolean consider_is_disposing); -/******************************************************************************/ +/*****************************************************************************/ gboolean nm_g_object_set_property (GObject *object, const gchar *property_name, const GValue *value, GError **error); -/******************************************************************************/ +/*****************************************************************************/ #endif /* __NM_SHARED_UTILS_H__ */ diff --git a/shared/nm-utils/nm-test-utils.h b/shared/nm-utils/nm-test-utils.h index dba41c4ba9..64604e38f1 100644 --- a/shared/nm-utils/nm-test-utils.h +++ b/shared/nm-utils/nm-test-utils.h @@ -106,12 +106,12 @@ #include "nm-utils.h" -/*******************************************************************************/ +/*****************************************************************************/ #define NMTST_G_RETURN_MSG_S(expr) "*: assertion '"NM_ASSERT_G_RETURN_EXPR(expr)"' failed" #define NMTST_G_RETURN_MSG(expr) NMTST_G_RETURN_MSG_S(#expr) -/*******************************************************************************/ +/*****************************************************************************/ /* general purpose functions that have no dependency on other nmtst functions */ @@ -168,7 +168,7 @@ g_assert (!(success)); \ } G_STMT_END -/*******************************************************************************/ +/*****************************************************************************/ struct __nmtst_internal { @@ -1123,7 +1123,7 @@ __nmtst_spawn_sync (const char *working_directory, char **standard_out, char **s return exit_status; } -/*******************************************************************************/ +/*****************************************************************************/ inline static char * nmtst_file_resolve_relative_path (const char *rel, const char *cwd) @@ -1156,7 +1156,7 @@ _nmtst_assert_resolve_relative_path_equals (const char *f1, const char *f2, cons } #define nmtst_assert_resolve_relative_path_equals(f1, f2) _nmtst_assert_resolve_relative_path_equals (f1, f2, __FILE__, __LINE__); -/*******************************************************************************/ +/*****************************************************************************/ #ifdef NM_SETTING_IP_CONFIG_H inline static void diff --git a/src/Makefile.am b/src/Makefile.am index f08acecc0d..6e2742a8d0 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -90,7 +90,6 @@ noinst_LTLIBRARIES = \ libNetworkManagerBase.la \ libNetworkManager.la \ libNetworkManagerTest.la \ - libnm-iface-helper.la \ libsystemd-nm.la ############################################################################### @@ -290,25 +289,10 @@ nm_device_headers = \ devices/nm-device-vxlan.h \ $(NULL) -nm_dhcp_client_sources = \ - dhcp-manager/nm-dhcp-dhclient.c \ - dhcp-manager/nm-dhcp-dhcpcd.c \ - dhcp-manager/nm-dhcp-systemd.c \ - $(NULL) - -nm_dhcp_client_headers = \ - dhcp-manager/nm-dhcp-dhclient.h \ - dhcp-manager/nm-dhcp-dhcpcd.h \ - dhcp-manager/nm-dhcp-systemd.h \ - $(NULL) - ############################################################################### libNetworkManager_la_SOURCES = \ \ - dhcp-manager/nm-dhcp-dhclient-utils.c \ - dhcp-manager/nm-dhcp-dhclient-utils.h \ - \ nm-checkpoint-manager.c \ nm-checkpoint-manager.h \ nm-checkpoint.c \ @@ -332,13 +316,18 @@ libNetworkManager_la_SOURCES = \ dhcp-manager/nm-dhcp-client.c \ dhcp-manager/nm-dhcp-client.h \ dhcp-manager/nm-dhcp-client-logging.h \ - dhcp-manager/nm-dhcp-helper-api.h \ dhcp-manager/nm-dhcp-utils.c \ + dhcp-manager/nm-dhcp-manager.c \ + dhcp-manager/nm-dhcp-manager.h \ dhcp-manager/nm-dhcp-utils.h \ + dhcp-manager/nm-dhcp-dhclient.c \ + dhcp-manager/nm-dhcp-dhcpcd.c \ + dhcp-manager/nm-dhcp-systemd.c \ + dhcp-manager/nm-dhcp-helper-api.h \ dhcp-manager/nm-dhcp-listener.c \ dhcp-manager/nm-dhcp-listener.h \ - dhcp-manager/nm-dhcp-manager.c \ - dhcp-manager/nm-dhcp-manager.h \ + dhcp-manager/nm-dhcp-dhclient-utils.c \ + dhcp-manager/nm-dhcp-dhclient-utils.h \ \ dns-manager/nm-dns-dnsmasq.c \ dns-manager/nm-dns-dnsmasq.h \ @@ -421,8 +410,8 @@ libNetworkManager_la_SOURCES = \ vpn-manager/nm-vpn-manager.c \ vpn-manager/nm-vpn-manager.h \ \ - nm-activation-request.c \ - nm-activation-request.h \ + nm-act-request.c \ + nm-act-request.h \ nm-active-connection.c \ nm-active-connection.h \ nm-audit-manager.c \ @@ -524,9 +513,6 @@ NetworkManager_SOURCES = \ $(nm_device_sources) \ $(nm_device_headers) \ \ - $(nm_dhcp_client_sources) \ - $(nm_dhcp_client_headers) \ - \ main-utils.c \ main-utils.h \ main.c @@ -540,7 +526,10 @@ NetworkManager_LDFLAGS = \ ############################################################################### -libnm_iface_helper_la_SOURCES = \ +nm_iface_helper_CFLAGS = \ + -DNM_DHCP_INTERNAL_ONLY + +nm_iface_helper_SOURCES = \ \ dhcp-manager/nm-dhcp-client.c \ dhcp-manager/nm-dhcp-client.h \ @@ -549,6 +538,7 @@ libnm_iface_helper_la_SOURCES = \ dhcp-manager/nm-dhcp-utils.h \ dhcp-manager/nm-dhcp-manager.c \ dhcp-manager/nm-dhcp-manager.h \ + dhcp-manager/nm-dhcp-systemd.c \ \ platform/nmp-netns.c \ platform/nmp-netns.h \ @@ -586,15 +576,19 @@ libnm_iface_helper_la_SOURCES = \ nm-multi-index.c \ nm-multi-index.h \ NetworkManagerUtils.c \ - NetworkManagerUtils.h + NetworkManagerUtils.h \ + \ + nm-iface-helper.c \ + main-utils.c \ + main-utils.h if WITH_WEXT -libnm_iface_helper_la_SOURCES += \ +nm_iface_helper_SOURCES += \ platform/wifi/wifi-utils-wext.c \ platform/wifi/wifi-utils-wext.h endif -libnm_iface_helper_la_LIBADD = \ +nm_iface_helper_LDADD = \ $(top_builddir)/libnm-core/libnm-core.la \ $(top_builddir)/introspection/libnmdbus.la \ libNetworkManagerBase.la \ @@ -606,22 +600,6 @@ libnm_iface_helper_la_LIBADD = \ $(DL_LIBS) \ $(LIBM) -nm_iface_helper_SOURCES = \ - dhcp-manager/nm-dhcp-systemd.h \ - dhcp-manager/nm-dhcp-systemd.c \ - nm-iface-helper.c \ - main-utils.c \ - main-utils.h - -nm_iface_helper_LDADD = \ - $(top_builddir)/libnm-core/libnm-core.la \ - libnm-iface-helper.la \ - $(GLIB_LIBS) \ - $(GUDEV_LIBS) \ - $(LIBNL_LIBS) \ - $(LIBNDP_LIBS) \ - $(LIBM) - nm_iface_helper_LDFLAGS = \ -rdynamic diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c index 7cfe03f1df..ad90fb7118 100644 --- a/src/NetworkManagerUtils.c +++ b/src/NetworkManagerUtils.c @@ -34,7 +34,7 @@ #include "nm-exported-object.h" #include "nm-auth-utils.h" -/******************************************************************************/ +/*****************************************************************************/ /** * nm_utils_get_shared_wifi_permission: @@ -65,7 +65,7 @@ nm_utils_get_shared_wifi_permission (NMConnection *connection) return NULL; } -/******************************************************************************/ +/*****************************************************************************/ static char * get_new_connection_name (const GSList *existing, @@ -774,7 +774,7 @@ nm_utils_match_connection (GSList *connections, return best_match; } -/******************************************************************************/ +/*****************************************************************************/ /** * nm_utils_g_value_set_object_path: @@ -830,4 +830,4 @@ nm_utils_g_value_set_object_path_array (GValue *value, g_value_take_boxed (value, paths); } -/******************************************************************************/ +/*****************************************************************************/ diff --git a/src/devices/adsl/nm-atm-manager.c b/src/devices/adsl/nm-atm-manager.c index 6708575215..5decea5200 100644 --- a/src/devices/adsl/nm-atm-manager.c +++ b/src/devices/adsl/nm-atm-manager.c @@ -24,27 +24,49 @@ #include <gudev/gudev.h> #include <gmodule.h> -#include "nm-atm-manager.h" #include "nm-setting-adsl.h" #include "nm-device-adsl.h" #include "nm-device-factory.h" #include "nm-platform.h" +/*****************************************************************************/ + +#define NM_TYPE_ATM_MANAGER (nm_atm_manager_get_type ()) +#define NM_ATM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_ATM_MANAGER, NMAtmManager)) +#define NM_ATM_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_ATM_MANAGER, NMAtmManagerClass)) +#define NM_IS_ATM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_ATM_MANAGER)) +#define NM_IS_ATM_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_ATM_MANAGER)) +#define NM_ATM_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_ATM_MANAGER, NMAtmManagerClass)) + +typedef struct _NMAtmManager NMAtmManager; +typedef struct _NMAtmManagerClass NMAtmManagerClass; + +static GType nm_atm_manager_get_type (void); + +/*****************************************************************************/ + typedef struct { GUdevClient *client; GSList *devices; } NMAtmManagerPrivate; -#define NM_ATM_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_ATM_MANAGER, NMAtmManagerPrivate)) +struct _NMAtmManager { + GObject parent; + NMAtmManagerPrivate _priv; +}; -static GType nm_atm_manager_get_type (void); +struct _NMAtmManagerClass { + GObjectClass parent; +}; static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface); G_DEFINE_TYPE_EXTENDED (NMAtmManager, nm_atm_manager, G_TYPE_OBJECT, 0, G_IMPLEMENT_INTERFACE (NM_TYPE_DEVICE_FACTORY, device_factory_interface_init)) -/**************************************************************************/ +#define NM_ATM_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMAtmManager, NM_IS_ATM_MANAGER) + +/*****************************************************************************/ G_MODULE_EXPORT NMDeviceFactory * nm_device_factory_create (GError **error) @@ -52,7 +74,7 @@ nm_device_factory_create (GError **error) return (NMDeviceFactory *) g_object_new (NM_TYPE_ATM_MANAGER, NULL); } -/************************************************************************/ +/*****************************************************************************/ static gboolean dev_get_attrs (GUdevDevice *udev_device, @@ -223,24 +245,7 @@ NM_DEVICE_FACTORY_DECLARE_TYPES ( NM_DEVICE_FACTORY_DECLARE_SETTING_TYPES (NM_SETTING_ADSL_SETTING_NAME) ) -/*********************************************************************/ - -static void -nm_atm_manager_init (NMAtmManager *self) -{ - NMAtmManagerPrivate *priv = NM_ATM_MANAGER_GET_PRIVATE (self); - const char *subsys[] = { "atm", NULL }; - - priv->client = g_udev_client_new (subsys); - g_signal_connect (priv->client, "uevent", G_CALLBACK (handle_uevent), self); -} - -static void -device_factory_interface_init (NMDeviceFactoryInterface *factory_iface) -{ - factory_iface->get_supported_types = get_supported_types; - factory_iface->start = start; -} +/*****************************************************************************/ static void dispose (GObject *object) @@ -249,9 +254,10 @@ dispose (GObject *object) NMAtmManagerPrivate *priv = NM_ATM_MANAGER_GET_PRIVATE (self); GSList *iter; - if (priv->client) + if (priv->client) { g_signal_handlers_disconnect_by_func (priv->client, handle_uevent, self); - g_clear_object (&priv->client); + g_clear_object (&priv->client); + } for (iter = priv->devices; iter; iter = iter->next) g_object_weak_unref (G_OBJECT (iter->data), device_destroyed, self); @@ -265,8 +271,24 @@ nm_atm_manager_class_init (NMAtmManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMAtmManagerPrivate)); - - /* virtual methods */ object_class->dispose = dispose; } + +/*****************************************************************************/ + +static void +nm_atm_manager_init (NMAtmManager *self) +{ + NMAtmManagerPrivate *priv = NM_ATM_MANAGER_GET_PRIVATE (self); + const char *subsys[] = { "atm", NULL }; + + priv->client = g_udev_client_new (subsys); + g_signal_connect (priv->client, "uevent", G_CALLBACK (handle_uevent), self); +} + +static void +device_factory_interface_init (NMDeviceFactoryInterface *factory_iface) +{ + factory_iface->get_supported_types = get_supported_types; + factory_iface->start = start; +} diff --git a/src/devices/adsl/nm-atm-manager.h b/src/devices/adsl/nm-atm-manager.h deleted file mode 100644 index bcbc6c77bc..0000000000 --- a/src/devices/adsl/nm-atm-manager.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager -- Network link manager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2014 Red Hat, Inc. - */ - -#ifndef __NETWORKMANAGER_ATM_MANAGER_H__ -#define __NETWORKMANAGER_ATM_MANAGER_H__ - -#define NM_TYPE_ATM_MANAGER (nm_atm_manager_get_type ()) -#define NM_ATM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_ATM_MANAGER, NMAtmManager)) - -typedef struct { - GObject parent; -} NMAtmManager; - -typedef struct { - GObjectClass parent; -} NMAtmManagerClass; - -#endif /* __NETWORKMANAGER_ATM_MANAGER_H__ */ - diff --git a/src/devices/adsl/nm-device-adsl.c b/src/devices/adsl/nm-device-adsl.c index ebb7a319b4..a5b6641abf 100644 --- a/src/devices/adsl/nm-device-adsl.c +++ b/src/devices/adsl/nm-device-adsl.c @@ -20,24 +20,23 @@ #include "nm-default.h" +#include "nm-device-adsl.h" + #include <sys/socket.h> #include <linux/atmdev.h> #include <linux/atmbr2684.h> - #include <errno.h> #include <sys/ioctl.h> #include <sys/types.h> #include <unistd.h> - #include <stdlib.h> #include <string.h> -#include "nm-device-adsl.h" #include "nm-device-private.h" #include "nm-enum-types.h" #include "nm-platform.h" - #include "ppp-manager/nm-ppp-manager.h" +#include "ppp-manager/nm-ppp-status.h" #include "nm-setting-adsl.h" #include "nm-utils.h" @@ -46,18 +45,11 @@ #include "nm-device-logging.h" _LOG_DECLARE_SELF (NMDeviceAdsl); -G_DEFINE_TYPE (NMDeviceAdsl, nm_device_adsl, NM_TYPE_DEVICE) - -#define NM_DEVICE_ADSL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_ADSL, NMDeviceAdslPrivate)) +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_ATM_INDEX, - - LAST_PROP -}; - -/**********************************************/ +); typedef struct { guint carrier_poll_id; @@ -74,7 +66,20 @@ typedef struct { guint nas_update_count; } NMDeviceAdslPrivate; -/**************************************************************/ +struct _NMDeviceAdsl { + NMDevice parent; + NMDeviceAdslPrivate _priv; +}; + +struct _NMDeviceAdslClass { + NMDeviceClass parent; +}; + +G_DEFINE_TYPE (NMDeviceAdsl, nm_device_adsl, NM_TYPE_DEVICE) + +#define NM_DEVICE_ADSL_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceAdsl, NM_IS_DEVICE_ADSL) + +/*****************************************************************************/ static NMDeviceCapabilities get_generic_capabilities (NMDevice *dev) @@ -138,7 +143,7 @@ complete_connection (NMDevice *device, return TRUE; } -/**************************************************************/ +/*****************************************************************************/ static gboolean br2684_assign_vcc (NMDeviceAdsl *self, NMSettingAdsl *s_adsl) @@ -526,7 +531,7 @@ deactivate (NMDevice *device) adsl_cleanup (NM_DEVICE_ADSL (device)); } -/**************************************************************/ +/*****************************************************************************/ static gboolean carrier_update_cb (gpointer user_data) @@ -545,51 +550,7 @@ carrier_update_cb (gpointer user_data) return TRUE; } -/**************************************************************/ - -NMDevice * -nm_device_adsl_new (const char *udi, - const char *iface, - const char *driver, - int atm_index) -{ - g_return_val_if_fail (udi != NULL, NULL); - g_return_val_if_fail (atm_index >= 0, NULL); - - return (NMDevice *) g_object_new (NM_TYPE_DEVICE_ADSL, - NM_DEVICE_UDI, udi, - NM_DEVICE_IFACE, iface, - NM_DEVICE_DRIVER, driver, - NM_DEVICE_ADSL_ATM_INDEX, atm_index, - NM_DEVICE_TYPE_DESC, "ADSL", - NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_ADSL, - NULL); -} - -static void -constructed (GObject *object) -{ - NMDeviceAdsl *self = NM_DEVICE_ADSL (object); - NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self); - - G_OBJECT_CLASS (nm_device_adsl_parent_class)->constructed (object); - - priv->carrier_poll_id = g_timeout_add_seconds (5, carrier_update_cb, self); - - _LOGD (LOGD_ADSL, "ATM device index %d", priv->atm_index); - - g_return_if_fail (priv->atm_index >= 0); -} - -static void -dispose (GObject *object) -{ - adsl_cleanup (NM_DEVICE_ADSL (object)); - - nm_clear_g_source (&NM_DEVICE_ADSL_GET_PRIVATE (object)->carrier_poll_id); - - G_OBJECT_CLASS (nm_device_adsl_parent_class)->dispose (object); -} +/*****************************************************************************/ static void get_property (GObject *object, guint prop_id, @@ -597,7 +558,7 @@ get_property (GObject *object, guint prop_id, { switch (prop_id) { case PROP_ATM_INDEX: - g_value_set_int (value, NM_DEVICE_ADSL_GET_PRIVATE (object)->atm_index); + g_value_set_int (value, NM_DEVICE_ADSL_GET_PRIVATE ((NMDeviceAdsl *) object)->atm_index); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -612,7 +573,7 @@ set_property (GObject *object, guint prop_id, switch (prop_id) { case PROP_ATM_INDEX: /* construct only */ - NM_DEVICE_ADSL_GET_PRIVATE (object)->atm_index = g_value_get_int (value); + NM_DEVICE_ADSL_GET_PRIVATE ((NMDeviceAdsl *) object)->atm_index = g_value_get_int (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -620,19 +581,63 @@ set_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + static void nm_device_adsl_init (NMDeviceAdsl *self) { } static void +constructed (GObject *object) +{ + NMDeviceAdsl *self = NM_DEVICE_ADSL (object); + NMDeviceAdslPrivate *priv = NM_DEVICE_ADSL_GET_PRIVATE (self); + + G_OBJECT_CLASS (nm_device_adsl_parent_class)->constructed (object); + + priv->carrier_poll_id = g_timeout_add_seconds (5, carrier_update_cb, self); + + _LOGD (LOGD_ADSL, "ATM device index %d", priv->atm_index); + + g_return_if_fail (priv->atm_index >= 0); +} + +NMDevice * +nm_device_adsl_new (const char *udi, + const char *iface, + const char *driver, + int atm_index) +{ + g_return_val_if_fail (udi != NULL, NULL); + g_return_val_if_fail (atm_index >= 0, NULL); + + return (NMDevice *) g_object_new (NM_TYPE_DEVICE_ADSL, + NM_DEVICE_UDI, udi, + NM_DEVICE_IFACE, iface, + NM_DEVICE_DRIVER, driver, + NM_DEVICE_ADSL_ATM_INDEX, atm_index, + NM_DEVICE_TYPE_DESC, "ADSL", + NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_ADSL, + NULL); +} + +static void +dispose (GObject *object) +{ + adsl_cleanup (NM_DEVICE_ADSL (object)); + + nm_clear_g_source (&NM_DEVICE_ADSL_GET_PRIVATE ((NMDeviceAdsl *) object)->carrier_poll_id); + + G_OBJECT_CLASS (nm_device_adsl_parent_class)->dispose (object); +} + +static void nm_device_adsl_class_init (NMDeviceAdslClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMDeviceAdslPrivate)); - object_class->constructed = constructed; object_class->dispose = dispose; object_class->get_property = get_property; @@ -647,13 +652,13 @@ nm_device_adsl_class_init (NMDeviceAdslClass *klass) parent_class->act_stage3_ip4_config_start = act_stage3_ip4_config_start; parent_class->deactivate = deactivate; - /* properties */ - g_object_class_install_property - (object_class, PROP_ATM_INDEX, - g_param_spec_int (NM_DEVICE_ADSL_ATM_INDEX, "", "", - -1, G_MAXINT, -1, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ATM_INDEX] = + g_param_spec_int (NM_DEVICE_ADSL_ATM_INDEX, "", "", + -1, G_MAXINT, -1, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_ADSL_SKELETON, diff --git a/src/devices/adsl/nm-device-adsl.h b/src/devices/adsl/nm-device-adsl.h index cfde2b3529..ff8d1f999d 100644 --- a/src/devices/adsl/nm-device-adsl.h +++ b/src/devices/adsl/nm-device-adsl.h @@ -22,7 +22,6 @@ #ifndef __NETWORKMANAGER_DEVICE_ADSL_H__ #define __NETWORKMANAGER_DEVICE_ADSL_H__ -// Parent class #include "nm-device.h" #define NM_TYPE_DEVICE_ADSL (nm_device_adsl_get_type ()) @@ -34,13 +33,8 @@ #define NM_DEVICE_ADSL_ATM_INDEX "atm-index" -typedef struct { - NMDevice parent; -} NMDeviceAdsl; - -typedef struct { - NMDeviceClass parent; -} NMDeviceAdslClass; +typedef struct _NMDeviceAdsl NMDeviceAdsl; +typedef struct _NMDeviceAdslClass NMDeviceAdslClass; GType nm_device_adsl_get_type (void); diff --git a/src/devices/bluetooth/Makefile.am b/src/devices/bluetooth/Makefile.am index 8997bf7861..7ac7bff0ec 100644 --- a/src/devices/bluetooth/Makefile.am +++ b/src/devices/bluetooth/Makefile.am @@ -33,7 +33,6 @@ SYMBOL_VIS_FILE=$(srcdir)/exports.ver libnm_device_plugin_bluetooth_la_SOURCES = \ nm-bluez-manager.c \ - nm-bluez-manager.h \ nm-bluez-common.h \ nm-bluez-device.c \ nm-bluez-device.h \ diff --git a/src/devices/bluetooth/nm-bluez-common.h b/src/devices/bluetooth/nm-bluez-common.h index 67810b94ce..6e97c3f512 100644 --- a/src/devices/bluetooth/nm-bluez-common.h +++ b/src/devices/bluetooth/nm-bluez-common.h @@ -39,5 +39,6 @@ #define BLUEZ4_SERIAL_INTERFACE "org.bluez.Serial" #define BLUEZ4_NETWORK_INTERFACE "org.bluez.Network" -#endif /* NM_BLUEZ_COMMON_H */ +#define NM_BLUEZ_MANAGER_BDADDR_ADDED "bdaddr-added" +#endif /* NM_BLUEZ_COMMON_H */ diff --git a/src/devices/bluetooth/nm-bluez-device.c b/src/devices/bluetooth/nm-bluez-device.c index 3463da6be8..6e705f93da 100644 --- a/src/devices/bluetooth/nm-bluez-device.c +++ b/src/devices/bluetooth/nm-bluez-device.c @@ -21,13 +21,13 @@ #include "nm-default.h" +#include "nm-bluez-device.h" + #include <string.h> #include "nm-core-internal.h" - #include "nm-bt-error.h" #include "nm-bluez-common.h" -#include "nm-bluez-device.h" #include "nm-settings.h" #include "nm-settings-connection.h" #include "NetworkManagerUtils.h" @@ -36,9 +36,31 @@ #include "nm-bluez5-dun.h" #endif -G_DEFINE_TYPE (NMBluezDevice, nm_bluez_device, G_TYPE_OBJECT) +/*****************************************************************************/ -#define NM_BLUEZ_DEVICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_BLUEZ_DEVICE, NMBluezDevicePrivate)) +#define VARIANT_IS_OF_TYPE_BOOLEAN(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_BOOLEAN) )) +#define VARIANT_IS_OF_TYPE_STRING(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_STRING) )) +#define VARIANT_IS_OF_TYPE_OBJECT_PATH(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_OBJECT_PATH) )) +#define VARIANT_IS_OF_TYPE_STRING_ARRAY(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_STRING_ARRAY) )) + +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE (NMBluezDevice, + PROP_PATH, + PROP_ADDRESS, + PROP_NAME, + PROP_CAPABILITIES, + PROP_USABLE, + PROP_CONNECTED, +); + +enum { + INITIALIZED, + REMOVED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { char *path; @@ -75,39 +97,26 @@ typedef struct { gboolean pan_connection_no_autocreate; } NMBluezDevicePrivate; - -enum { - PROP_0, - PROP_PATH, - PROP_ADDRESS, - PROP_NAME, - PROP_CAPABILITIES, - PROP_USABLE, - PROP_CONNECTED, - - LAST_PROP +struct _NMBluezDevice { + GObject parent; + NMBluezDevicePrivate _priv; }; -/* Signals */ -enum { - INITIALIZED, - REMOVED, - LAST_SIGNAL +struct _NMBluezDeviceClass { + GObjectClass parent; }; -static guint signals[LAST_SIGNAL] = { 0 }; +G_DEFINE_TYPE (NMBluezDevice, nm_bluez_device, G_TYPE_OBJECT) + +#define NM_BLUEZ_DEVICE_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMBluezDevice, NM_IS_BLUEZ_DEVICE) + +/*****************************************************************************/ static void cp_connection_added (NMSettings *settings, NMConnection *connection, NMBluezDevice *self); static gboolean connection_compatible (NMBluezDevice *self, NMConnection *connection); - -#define VARIANT_IS_OF_TYPE_BOOLEAN(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_BOOLEAN) )) -#define VARIANT_IS_OF_TYPE_STRING(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_STRING) )) -#define VARIANT_IS_OF_TYPE_OBJECT_PATH(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_OBJECT_PATH) )) -#define VARIANT_IS_OF_TYPE_STRING_ARRAY(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_STRING_ARRAY) )) - -/***********************************************************/ +/*****************************************************************************/ const char * nm_bluez_device_get_path (NMBluezDevice *self) @@ -292,7 +301,7 @@ check_emit_usable (NMBluezDevice *self) END: if (new_usable != priv->usable) { priv->usable = new_usable; - g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_USABLE); + _notify (self, PROP_USABLE); } return G_SOURCE_REMOVE; @@ -307,7 +316,7 @@ check_emit_usable_schedule (NMBluezDevice *self) priv->check_emit_usable_id = g_idle_add ((GSourceFunc) check_emit_usable, self); } -/********************************************************************/ +/*****************************************************************************/ static gboolean connection_compatible (NMBluezDevice *self, NMConnection *connection) @@ -417,14 +426,14 @@ load_connections (NMBluezDevice *self) check_emit_usable (self); } -/***********************************************************/ +/*****************************************************************************/ static void bluez_disconnect_cb (GDBusConnection *dbus_connection, GAsyncResult *res, gpointer user_data) { - NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (user_data); + NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE ((NMBluezDevice *) user_data); GError *error = NULL; GVariant *variant; @@ -628,13 +637,13 @@ nm_bluez_device_connect_finish (NMBluezDevice *self, device = (const char *) g_simple_async_result_get_op_res_gpointer (simple); if (device && priv->bluez_version == 5) { priv->connected = TRUE; - g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_CONNECTED); + _notify (self, PROP_CONNECTED); } return device; } -/***********************************************************/ +/*****************************************************************************/ static void set_adapter_address (NMBluezDevice *self, const char *address) @@ -695,7 +704,7 @@ _set_property_capabilities (NMBluezDevice *self, const char **uuids) ((uint_val & NM_BT_CAPABILITY_DUN) && (uint_val &NM_BT_CAPABILITY_NAP)) ? " | " : "", uint_val & NM_BT_CAPABILITY_DUN ? "DUN" : ""); priv->capabilities = uint_val; - g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_CAPABILITIES); + _notify (self, PROP_CAPABILITIES); } } @@ -727,7 +736,7 @@ _set_property_address (NMBluezDevice *self, const char *addr) } priv->address = g_strdup (addr); - g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_ADDRESS); + _notify (self, PROP_ADDRESS); } static void @@ -749,7 +758,7 @@ _take_variant_property_name (NMBluezDevice *self, GVariant *v) if (g_strcmp0 (priv->name, str)) { g_free (priv->name); priv->name = g_strdup (str); - g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_NAME); + _notify (self, PROP_NAME); } } if (v) @@ -779,7 +788,7 @@ _take_variant_property_connected (NMBluezDevice *self, GVariant *v) if (priv->connected != connected) { priv->connected = connected; - g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_CONNECTED); + _notify (self, PROP_CONNECTED); } } if (v) @@ -1027,7 +1036,62 @@ on_bus_acquired (GObject *object, GAsyncResult *res, NMBluezDevice *self) g_object_unref (self); } -/********************************************************************/ +/*****************************************************************************/ + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE ((NMBluezDevice *) object); + + switch (prop_id) { + case PROP_PATH: + g_value_set_string (value, priv->path); + break; + case PROP_ADDRESS: + g_value_set_string (value, priv->address); + break; + case PROP_NAME: + g_value_set_string (value, priv->name); + break; + case PROP_CAPABILITIES: + g_value_set_uint (value, priv->capabilities); + break; + case PROP_USABLE: + g_value_set_boolean (value, priv->usable); + break; + case PROP_CONNECTED: + g_value_set_boolean (value, priv->connected); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE ((NMBluezDevice *) object); + + switch (prop_id) { + case PROP_PATH: + /* construct only */ + priv->path = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/*****************************************************************************/ + +static void +nm_bluez_device_init (NMBluezDevice *self) +{ +} NMBluezDevice * nm_bluez_device_new (const char *path, @@ -1090,11 +1154,6 @@ nm_bluez_device_new (const char *path, } static void -nm_bluez_device_init (NMBluezDevice *self) -{ -} - -static void dispose (GObject *object) { NMBluezDevice *self = NM_BLUEZ_DEVICE (object); @@ -1146,7 +1205,7 @@ dispose (GObject *object) static void finalize (GObject *object) { - NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (object); + NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE ((NMBluezDevice *) object); nm_log_dbg (LOGD_BT, "bluez[%s]: finalize NMBluezDevice", priv->path); @@ -1164,121 +1223,64 @@ finalize (GObject *object) } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_PATH: - g_value_set_string (value, priv->path); - break; - case PROP_ADDRESS: - g_value_set_string (value, priv->address); - break; - case PROP_NAME: - g_value_set_string (value, priv->name); - break; - case PROP_CAPABILITIES: - g_value_set_uint (value, priv->capabilities); - break; - case PROP_USABLE: - g_value_set_boolean (value, priv->usable); - break; - case PROP_CONNECTED: - g_value_set_boolean (value, priv->connected); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_PATH: - /* construct only */ - priv->path = g_value_dup_string (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void nm_bluez_device_class_init (NMBluezDeviceClass *config_class) { GObjectClass *object_class = G_OBJECT_CLASS (config_class); - g_type_class_add_private (config_class, sizeof (NMBluezDevicePrivate)); - - /* virtual methods */ object_class->get_property = get_property; object_class->set_property = set_property; object_class->dispose = dispose; object_class->finalize = finalize; - /* Properties */ - g_object_class_install_property - (object_class, PROP_PATH, - g_param_spec_string (NM_BLUEZ_DEVICE_PATH, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_ADDRESS, - g_param_spec_string (NM_BLUEZ_DEVICE_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_NAME, - g_param_spec_string (NM_BLUEZ_DEVICE_NAME, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_CAPABILITIES, - g_param_spec_uint (NM_BLUEZ_DEVICE_CAPABILITIES, "", "", - 0, G_MAXUINT, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_USABLE, - g_param_spec_boolean (NM_BLUEZ_DEVICE_USABLE, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_CONNECTED, - g_param_spec_boolean (NM_BLUEZ_DEVICE_CONNECTED, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - /* Signals */ + obj_properties[PROP_PATH] = + g_param_spec_string (NM_BLUEZ_DEVICE_PATH, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_ADDRESS] = + g_param_spec_string (NM_BLUEZ_DEVICE_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_NAME] = + g_param_spec_string (NM_BLUEZ_DEVICE_NAME, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_CAPABILITIES] = + g_param_spec_uint (NM_BLUEZ_DEVICE_CAPABILITIES, "", "", + 0, G_MAXUINT, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_USABLE] = + g_param_spec_boolean (NM_BLUEZ_DEVICE_USABLE, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_CONNECTED] = + g_param_spec_boolean (NM_BLUEZ_DEVICE_CONNECTED, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + signals[INITIALIZED] = g_signal_new ("initialized", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMBluezDeviceClass, initialized), + 0, NULL, NULL, NULL, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); signals[REMOVED] = g_signal_new (NM_BLUEZ_DEVICE_REMOVED, G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMBluezDeviceClass, removed), + 0, NULL, NULL, NULL, G_TYPE_NONE, 0); } diff --git a/src/devices/bluetooth/nm-bluez-device.h b/src/devices/bluetooth/nm-bluez-device.h index 66a349e0db..e56d5d2429 100644 --- a/src/devices/bluetooth/nm-bluez-device.h +++ b/src/devices/bluetooth/nm-bluez-device.h @@ -41,18 +41,8 @@ /* Signals */ #define NM_BLUEZ_DEVICE_REMOVED "removed" -typedef struct { - GObject parent; -} NMBluezDevice; - -typedef struct { - GObjectClass parent; - - /* virtual functions */ - void (*initialized) (NMBluezDevice *self, gboolean success); - - void (*removed) (NMBluezDevice *self); -} NMBluezDeviceClass; +typedef struct _NMBluezDevice NMBluezDevice; +typedef struct _NMBluezDeviceClass NMBluezDeviceClass; GType nm_bluez_device_get_type (void); diff --git a/src/devices/bluetooth/nm-bluez-manager.c b/src/devices/bluetooth/nm-bluez-manager.c index 0d2e302cfc..bc262eebdd 100644 --- a/src/devices/bluetooth/nm-bluez-manager.c +++ b/src/devices/bluetooth/nm-bluez-manager.c @@ -20,8 +20,6 @@ #include "nm-default.h" -#include "nm-bluez-manager.h" - #include <signal.h> #include <string.h> #include <stdlib.h> @@ -39,15 +37,21 @@ #include "nm-platform.h" #include "nm-dbus-compat.h" -#define _NMLOG_DOMAIN LOGD_BT -#define _NMLOG_PREFIX_NAME "bluez" -#define _NMLOG(level, ...) \ - G_STMT_START { \ - nm_log ((level), _NMLOG_DOMAIN, \ - "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - _NMLOG_PREFIX_NAME": " \ - _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ - } G_STMT_END +/*****************************************************************************/ + +#define NM_TYPE_BLUEZ_MANAGER (nm_bluez_manager_get_type ()) +#define NM_BLUEZ_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ_MANAGER, NMBluezManager)) +#define NM_BLUEZ_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_BLUEZ_MANAGER, NMBluezManagerClass)) +#define NM_IS_BLUEZ_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_BLUEZ_MANAGER)) +#define NM_IS_BLUEZ_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_BLUEZ_MANAGER)) +#define NM_BLUEZ_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_BLUEZ_MANAGER, NMBluezManagerClass)) + +typedef struct _NMBluezManager NMBluezManager; +typedef struct _NMBluezManagerClass NMBluezManagerClass; + +static GType nm_bluez_manager_get_type (void); + +/*****************************************************************************/ typedef struct { int bluez_version; @@ -62,26 +66,39 @@ typedef struct { GCancellable *async_cancellable; } NMBluezManagerPrivate; -#define NM_BLUEZ_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_BLUEZ_MANAGER, NMBluezManagerPrivate)) +struct _NMBluezManager { + GObject parent; + NMBluezManagerPrivate _priv; +}; -static GType nm_bluez_manager_get_type (void); +struct _NMBluezManagerClass { + GObjectClass parent; +}; static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface); G_DEFINE_TYPE_EXTENDED (NMBluezManager, nm_bluez_manager, G_TYPE_OBJECT, 0, G_IMPLEMENT_INTERFACE (NM_TYPE_DEVICE_FACTORY, device_factory_interface_init)) -static void check_bluez_and_try_setup (NMBluezManager *self); +#define NM_BLUEZ_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMBluezManager, NM_IS_BLUEZ_MANAGER) -/**************************************************************************/ +/*****************************************************************************/ -G_MODULE_EXPORT NMDeviceFactory * -nm_device_factory_create (GError **error) -{ - return (NMDeviceFactory *) g_object_new (NM_TYPE_BLUEZ_MANAGER, NULL); -} +#define _NMLOG_DOMAIN LOGD_BT +#define _NMLOG_PREFIX_NAME "bluez" +#define _NMLOG(level, ...) \ + G_STMT_START { \ + nm_log ((level), _NMLOG_DOMAIN, \ + "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + _NMLOG_PREFIX_NAME": " \ + _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } G_STMT_END -/************************************************************************/ +/*****************************************************************************/ + +static void check_bluez_and_try_setup (NMBluezManager *self); + +/*****************************************************************************/ struct AsyncData { NMBluezManager *self; @@ -382,12 +399,32 @@ start (NMDeviceFactory *factory) check_bluez_and_try_setup (NM_BLUEZ_MANAGER (factory)); } +static NMDevice * +create_device (NMDeviceFactory *factory, + const char *iface, + const NMPlatformLink *plink, + NMConnection *connection, + gboolean *out_ignore) +{ + g_warn_if_fail (plink->type == NM_LINK_TYPE_BNEP); + *out_ignore = TRUE; + return NULL; +} + NM_DEVICE_FACTORY_DECLARE_TYPES ( NM_DEVICE_FACTORY_DECLARE_LINK_TYPES (NM_LINK_TYPE_BNEP) NM_DEVICE_FACTORY_DECLARE_SETTING_TYPES (NM_SETTING_BLUETOOTH_SETTING_NAME) ) -/*********************************************************************/ +/*****************************************************************************/ + +static void +nm_bluez_manager_init (NMBluezManager *self) +{ + NMBluezManagerPrivate *priv = NM_BLUEZ_MANAGER_GET_PRIVATE (self); + + priv->settings = g_object_ref (NM_SETTINGS_GET); +} static void dispose (GObject *object) @@ -414,23 +451,11 @@ dispose (GObject *object) } static void -nm_bluez_manager_init (NMBluezManager *self) +nm_bluez_manager_class_init (NMBluezManagerClass *klass) { - NMBluezManagerPrivate *priv = NM_BLUEZ_MANAGER_GET_PRIVATE (self); - - priv->settings = g_object_ref (NM_SETTINGS_GET); -} + GObjectClass *object_class = G_OBJECT_CLASS (klass); -static NMDevice * -create_device (NMDeviceFactory *factory, - const char *iface, - const NMPlatformLink *plink, - NMConnection *connection, - gboolean *out_ignore) -{ - g_warn_if_fail (plink->type == NM_LINK_TYPE_BNEP); - *out_ignore = TRUE; - return NULL; + object_class->dispose = dispose; } static void @@ -441,14 +466,10 @@ device_factory_interface_init (NMDeviceFactoryInterface *factory_iface) factory_iface->start = start; } -static void -nm_bluez_manager_class_init (NMBluezManagerClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); +/*****************************************************************************/ - g_type_class_add_private (klass, sizeof (NMBluezManagerPrivate)); - - /* virtual methods */ - object_class->dispose = dispose; +G_MODULE_EXPORT NMDeviceFactory * +nm_device_factory_create (GError **error) +{ + return (NMDeviceFactory *) g_object_new (NM_TYPE_BLUEZ_MANAGER, NULL); } - diff --git a/src/devices/bluetooth/nm-bluez-manager.h b/src/devices/bluetooth/nm-bluez-manager.h deleted file mode 100644 index d23b33a7d8..0000000000 --- a/src/devices/bluetooth/nm-bluez-manager.h +++ /dev/null @@ -1,39 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager -- Network link manager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2014 Red Hat, Inc. - */ - -#ifndef __NETWORKMANAGER_BLUEZ_MANAGER_H__ -#define __NETWORKMANAGER_BLUEZ_MANAGER_H__ - -#define NM_TYPE_BLUEZ_MANAGER (nm_bluez_manager_get_type ()) -#define NM_BLUEZ_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BLUEZ_MANAGER, NMBluezManager)) - -#define NM_BLUEZ_MANAGER_BDADDR_ADDED "bdaddr-added" - -typedef struct { - GObject parent; -} NMBluezManager; - -typedef struct { - GObjectClass parent; -} NMBluezManagerClass; - -#endif /* __NETWORKMANAGER_BLUEZ_MANAGER_H__ */ - diff --git a/src/devices/bluetooth/nm-bluez4-adapter.c b/src/devices/bluetooth/nm-bluez4-adapter.c index 2ef071a8bf..dd684f29c2 100644 --- a/src/devices/bluetooth/nm-bluez4-adapter.c +++ b/src/devices/bluetooth/nm-bluez4-adapter.c @@ -30,9 +30,21 @@ #include "nm-core-internal.h" #include "nm-settings.h" -G_DEFINE_TYPE (NMBluez4Adapter, nm_bluez4_adapter, G_TYPE_OBJECT) +/*****************************************************************************/ -#define NM_BLUEZ4_ADAPTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_BLUEZ4_ADAPTER, NMBluez4AdapterPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_PATH, + PROP_ADDRESS, +); + +enum { + INITIALIZED, + DEVICE_ADDED, + DEVICE_REMOVED, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { char *path; @@ -46,26 +58,25 @@ typedef struct { NMSettings *settings; } NMBluez4AdapterPrivate; - -enum { - PROP_0, - PROP_PATH, - PROP_ADDRESS, - - LAST_PROP +struct _NMBluez4Adapter { + GObject parent; + NMBluez4AdapterPrivate _priv; }; -/* Signals */ -enum { - INITIALIZED, - DEVICE_ADDED, - DEVICE_REMOVED, - LAST_SIGNAL +struct _NMBluez4AdapterClass { + GObjectClass parent; }; -static guint signals[LAST_SIGNAL] = { 0 }; + +G_DEFINE_TYPE (NMBluez4Adapter, nm_bluez4_adapter, G_TYPE_OBJECT) + +#define NM_BLUEZ4_ADAPTER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMBluez4Adapter, NM_IS_BLUEZ4_ADAPTER) + +/*****************************************************************************/ static void device_do_remove (NMBluez4Adapter *self, NMBluezDevice *device); +/*****************************************************************************/ + const char * nm_bluez4_adapter_get_path (NMBluez4Adapter *self) { @@ -233,7 +244,62 @@ query_properties (NMBluez4Adapter *self) get_properties_cb, self); } -/***********************************************************/ +/*****************************************************************************/ + +static gboolean +_find_all (gpointer key, gpointer value, gpointer user_data) +{ + return TRUE; +} + +/*****************************************************************************/ + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE ((NMBluez4Adapter *) object); + + switch (prop_id) { + case PROP_PATH: + g_value_set_string (value, priv->path); + break; + case PROP_ADDRESS: + g_value_set_string (value, priv->address); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE ((NMBluez4Adapter *) object); + + switch (prop_id) { + case PROP_PATH: + /* construct only */ + priv->path = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/*****************************************************************************/ + +static void +nm_bluez4_adapter_init (NMBluez4Adapter *self) +{ + NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (self); + + priv->devices = g_hash_table_new_full (g_str_hash, g_str_equal, + NULL, NULL); +} NMBluez4Adapter * nm_bluez4_adapter_new (const char *path, NMSettings *settings) @@ -267,21 +333,6 @@ nm_bluez4_adapter_new (const char *path, NMSettings *settings) } static void -nm_bluez4_adapter_init (NMBluez4Adapter *self) -{ - NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (self); - - priv->devices = g_hash_table_new_full (g_str_hash, g_str_equal, - NULL, NULL); -} - -static gboolean -_find_all (gpointer key, gpointer value, gpointer user_data) -{ - return TRUE; -} - -static void dispose (GObject *object) { NMBluez4Adapter *self = NM_BLUEZ4_ADAPTER (object); @@ -297,7 +348,7 @@ dispose (GObject *object) static void finalize (GObject *object) { - NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (object); + NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE ((NMBluez4Adapter *) object); g_hash_table_destroy (priv->devices); g_free (priv->address); @@ -310,74 +361,33 @@ finalize (GObject *object) } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_PATH: - g_value_set_string (value, priv->path); - break; - case PROP_ADDRESS: - g_value_set_string (value, priv->address); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - NMBluez4AdapterPrivate *priv = NM_BLUEZ4_ADAPTER_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_PATH: - /* construct only */ - priv->path = g_value_dup_string (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void nm_bluez4_adapter_class_init (NMBluez4AdapterClass *config_class) { GObjectClass *object_class = G_OBJECT_CLASS (config_class); - g_type_class_add_private (config_class, sizeof (NMBluez4AdapterPrivate)); - - /* virtual methods */ object_class->get_property = get_property; object_class->set_property = set_property; object_class->dispose = dispose; object_class->finalize = finalize; - /* Properties */ - g_object_class_install_property - (object_class, PROP_PATH, - g_param_spec_string (NM_BLUEZ4_ADAPTER_PATH, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_ADDRESS, - g_param_spec_string (NM_BLUEZ4_ADAPTER_ADDRESS, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - /* Signals */ + obj_properties[PROP_PATH] = + g_param_spec_string (NM_BLUEZ4_ADAPTER_PATH, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_ADDRESS] = + g_param_spec_string (NM_BLUEZ4_ADAPTER_ADDRESS, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + signals[INITIALIZED] = g_signal_new ("initialized", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMBluez4AdapterClass, initialized), + 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); @@ -385,7 +395,7 @@ nm_bluez4_adapter_class_init (NMBluez4AdapterClass *config_class) signals[DEVICE_ADDED] = g_signal_new ("device-added", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMBluez4AdapterClass, device_added), + 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_OBJECT); @@ -393,7 +403,7 @@ nm_bluez4_adapter_class_init (NMBluez4AdapterClass *config_class) signals[DEVICE_REMOVED] = g_signal_new ("device-removed", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMBluez4AdapterClass, device_removed), + 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_OBJECT); diff --git a/src/devices/bluetooth/nm-bluez4-adapter.h b/src/devices/bluetooth/nm-bluez4-adapter.h index ee61112f2e..e240ec2ccb 100644 --- a/src/devices/bluetooth/nm-bluez4-adapter.h +++ b/src/devices/bluetooth/nm-bluez4-adapter.h @@ -33,20 +33,8 @@ #define NM_BLUEZ4_ADAPTER_PATH "path" #define NM_BLUEZ4_ADAPTER_ADDRESS "address" -typedef struct { - GObject parent; -} NMBluez4Adapter; - -typedef struct { - GObjectClass parent; - - /* virtual functions */ - void (*initialized) (NMBluez4Adapter *self, gboolean success); - - void (*device_added) (NMBluez4Adapter *self, NMBluezDevice *device); - - void (*device_removed) (NMBluez4Adapter *self, NMBluezDevice *device); -} NMBluez4AdapterClass; +typedef struct _NMBluez4Adapter NMBluez4Adapter; +typedef struct _NMBluez4AdapterClass NMBluez4AdapterClass; GType nm_bluez4_adapter_get_type (void); @@ -62,4 +50,3 @@ gboolean nm_bluez4_adapter_get_initialized (NMBluez4Adapter *self); GSList *nm_bluez4_adapter_get_devices (NMBluez4Adapter *self); #endif /* __NETWORKMANAGER_BLUEZ4_ADAPTER_H__ */ - diff --git a/src/devices/bluetooth/nm-bluez4-manager.c b/src/devices/bluetooth/nm-bluez4-manager.c index 36bc30e59c..78e892e40a 100644 --- a/src/devices/bluetooth/nm-bluez4-manager.c +++ b/src/devices/bluetooth/nm-bluez4-manager.c @@ -28,11 +28,19 @@ #include <stdlib.h> #include "nm-bluez4-adapter.h" -#include "nm-bluez-manager.h" #include "nm-bluez-common.h" #include "nm-core-internal.h" #include "nm-settings.h" +/*****************************************************************************/ + +enum { + BDADDR_ADDED, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + typedef struct { gulong name_owner_changed_id; @@ -43,19 +51,22 @@ typedef struct { NMBluez4Adapter *adapter; } NMBluez4ManagerPrivate; -#define NM_BLUEZ4_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_BLUEZ4_MANAGER, NMBluez4ManagerPrivate)) +struct _NMBluez4Manager { + GObject parent; + NMBluez4ManagerPrivate _priv; +}; + +struct _NMBluez4ManagerClass { + GObjectClass parent; +}; G_DEFINE_TYPE (NMBluez4Manager, nm_bluez4_manager, G_TYPE_OBJECT) -enum { - BDADDR_ADDED, - LAST_SIGNAL -}; +#define NM_BLUEZ4_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMBluez4Manager, NM_IS_BLUEZ4_MANAGER) -static guint signals[LAST_SIGNAL] = { 0 }; +/*****************************************************************************/ static void - emit_bdaddr_added (NMBluez4Manager *self, NMBluezDevice *device) { g_signal_emit (self, signals[BDADDR_ADDED], 0, @@ -222,19 +233,7 @@ name_owner_changed_cb (GObject *object, } } -/****************************************************************/ - -NMBluez4Manager * -nm_bluez4_manager_new (NMSettings *settings) -{ - NMBluez4Manager *instance; - - g_return_val_if_fail (NM_IS_SETTINGS (settings), NULL); - - instance = g_object_new (NM_TYPE_BLUEZ4_MANAGER, NULL); - NM_BLUEZ4_MANAGER_GET_PRIVATE (instance)->settings = g_object_ref (settings); - return instance; -} +/*****************************************************************************/ static void nm_bluez4_manager_init (NMBluez4Manager *self) @@ -258,6 +257,18 @@ nm_bluez4_manager_init (NMBluez4Manager *self) query_default_adapter (self); } +NMBluez4Manager * +nm_bluez4_manager_new (NMSettings *settings) +{ + NMBluez4Manager *instance; + + g_return_val_if_fail (NM_IS_SETTINGS (settings), NULL); + + instance = g_object_new (NM_TYPE_BLUEZ4_MANAGER, NULL); + NM_BLUEZ4_MANAGER_GET_PRIVATE (instance)->settings = g_object_ref (settings); + return instance; +} + static void dispose (GObject *object) { @@ -277,19 +288,14 @@ nm_bluez4_manager_class_init (NMBluez4ManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMBluez4ManagerPrivate)); - - /* virtual methods */ object_class->dispose = dispose; - /* Signals */ signals[BDADDR_ADDED] = - g_signal_new (NM_BLUEZ_MANAGER_BDADDR_ADDED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMBluez4ManagerClass, bdaddr_added), - NULL, NULL, NULL, - G_TYPE_NONE, 5, G_TYPE_OBJECT, G_TYPE_STRING, - G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT); + g_signal_new (NM_BLUEZ_MANAGER_BDADDR_ADDED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 5, G_TYPE_OBJECT, G_TYPE_STRING, + G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT); } diff --git a/src/devices/bluetooth/nm-bluez4-manager.h b/src/devices/bluetooth/nm-bluez4-manager.h index 8afe6924c7..f46379ffab 100644 --- a/src/devices/bluetooth/nm-bluez4-manager.h +++ b/src/devices/bluetooth/nm-bluez4-manager.h @@ -28,20 +28,8 @@ #define NM_IS_BLUEZ4_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_BLUEZ4_MANAGER)) #define NM_BLUEZ4_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_BLUEZ4_MANAGER, NMBluez4ManagerClass)) -typedef struct { - GObject parent; -} NMBluez4Manager; - -typedef struct { - GObjectClass parent; - - /* Signals */ - void (*bdaddr_added) (NMBluez4Manager *manager, - const char *bdaddr, - const char *name, - const char *object_path, - guint uuids); -} NMBluez4ManagerClass; +typedef struct _NMBluez4Manager NMBluez4Manager; +typedef struct _NMBluez4ManagerClass NMBluez4ManagerClass; GType nm_bluez4_manager_get_type (void); @@ -50,4 +38,3 @@ NMBluez4Manager *nm_bluez4_manager_new (NMSettings *settings); void nm_bluez4_manager_query_devices (NMBluez4Manager *manager); #endif /* __NETWORKMANAGER_BLUEZ4_MANAGER_H__ */ - diff --git a/src/devices/bluetooth/nm-bluez5-manager.c b/src/devices/bluetooth/nm-bluez5-manager.c index a014d0c124..9859f74bad 100644 --- a/src/devices/bluetooth/nm-bluez5-manager.c +++ b/src/devices/bluetooth/nm-bluez5-manager.c @@ -30,11 +30,19 @@ #include "nm-core-internal.h" -#include "nm-bluez-manager.h" #include "nm-bluez-device.h" #include "nm-bluez-common.h" #include "nm-settings.h" +/*****************************************************************************/ + +enum { + BDADDR_ADDED, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + typedef struct { NMSettings *settings; @@ -43,20 +51,26 @@ typedef struct { GHashTable *devices; } NMBluez5ManagerPrivate; -#define NM_BLUEZ5_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_BLUEZ5_MANAGER, NMBluez5ManagerPrivate)) +struct _NMBluez5Manager { + GObject parent; + NMBluez5ManagerPrivate _priv; +}; + +struct _NMBluez5ManagerClass { + GObjectClass parent; +}; G_DEFINE_TYPE (NMBluez5Manager, nm_bluez5_manager, G_TYPE_OBJECT) -enum { - BDADDR_ADDED, - LAST_SIGNAL -}; +#define NM_BLUEZ5_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMBluez5Manager, NM_IS_BLUEZ5_MANAGER) -static guint signals[LAST_SIGNAL] = { 0 }; +/*****************************************************************************/ static void device_initialized (NMBluezDevice *device, gboolean success, NMBluez5Manager *self); static void device_usable (NMBluezDevice *device, GParamSpec *pspec, NMBluez5Manager *self); +/*****************************************************************************/ + static void emit_bdaddr_added (NMBluez5Manager *self, NMBluezDevice *device) { @@ -308,7 +322,18 @@ bluez_cleanup (NMBluez5Manager *self, gboolean do_signal) g_hash_table_remove_all (priv->devices); } -/****************************************************************/ +/*****************************************************************************/ + +static void +nm_bluez5_manager_init (NMBluez5Manager *self) +{ + NMBluez5ManagerPrivate *priv = NM_BLUEZ5_MANAGER_GET_PRIVATE (self); + + bluez_connect (self); + + priv->devices = g_hash_table_new_full (g_str_hash, g_str_equal, + NULL, g_object_unref); +} NMBluez5Manager * nm_bluez5_manager_new (NMSettings *settings) @@ -323,17 +348,6 @@ nm_bluez5_manager_new (NMSettings *settings) } static void -nm_bluez5_manager_init (NMBluez5Manager *self) -{ - NMBluez5ManagerPrivate *priv = NM_BLUEZ5_MANAGER_GET_PRIVATE (self); - - bluez_connect (self); - - priv->devices = g_hash_table_new_full (g_str_hash, g_str_equal, - NULL, g_object_unref); -} - -static void dispose (GObject *object) { NMBluez5Manager *self = NM_BLUEZ5_MANAGER (object); @@ -346,7 +360,7 @@ dispose (GObject *object) static void finalize (GObject *object) { - NMBluez5ManagerPrivate *priv = NM_BLUEZ5_MANAGER_GET_PRIVATE (object); + NMBluez5ManagerPrivate *priv = NM_BLUEZ5_MANAGER_GET_PRIVATE ((NMBluez5Manager *) object); g_hash_table_destroy (priv->devices); @@ -360,19 +374,14 @@ nm_bluez5_manager_class_init (NMBluez5ManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMBluez5ManagerPrivate)); - - /* virtual methods */ object_class->dispose = dispose; object_class->finalize = finalize; - /* Signals */ signals[BDADDR_ADDED] = - g_signal_new (NM_BLUEZ_MANAGER_BDADDR_ADDED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMBluez5ManagerClass, bdaddr_added), - NULL, NULL, NULL, - G_TYPE_NONE, 5, G_TYPE_OBJECT, G_TYPE_STRING, - G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT); + g_signal_new (NM_BLUEZ_MANAGER_BDADDR_ADDED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 5, G_TYPE_OBJECT, G_TYPE_STRING, + G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT); } diff --git a/src/devices/bluetooth/nm-bluez5-manager.h b/src/devices/bluetooth/nm-bluez5-manager.h index 0e309d33a3..436944359b 100644 --- a/src/devices/bluetooth/nm-bluez5-manager.h +++ b/src/devices/bluetooth/nm-bluez5-manager.h @@ -29,20 +29,8 @@ #define NM_IS_BLUEZ5_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_BLUEZ5_MANAGER)) #define NM_BLUEZ5_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_BLUEZ5_MANAGER, NMBluez5ManagerClass)) -typedef struct { - GObject parent; -} NMBluez5Manager; - -typedef struct { - GObjectClass parent; - - /* Signals */ - void (*bdaddr_added) (NMBluez5Manager *manager, - const char *bdaddr, - const char *name, - const char *object_path, - guint uuids); -} NMBluez5ManagerClass; +typedef struct _NMBluez5Manager NMBluez5Manager; +typedef struct _NMBluez5ManagerClass NMBluez5ManagerClass; GType nm_bluez5_manager_get_type (void); @@ -51,4 +39,3 @@ NMBluez5Manager *nm_bluez5_manager_new (NMSettings *settings); void nm_bluez5_manager_query_devices (NMBluez5Manager *manager); #endif /* __NETWORKMANAGER_BLUEZ5_MANAGER_H__ */ - diff --git a/src/devices/bluetooth/nm-device-bt.c b/src/devices/bluetooth/nm-device-bt.c index 77b4c667b9..a36681c4a3 100644 --- a/src/devices/bluetooth/nm-device-bt.c +++ b/src/devices/bluetooth/nm-device-bt.c @@ -44,18 +44,27 @@ #include "nmdbus-device-bt.h" +#include "nm-device-logging.h" +_LOG_DECLARE_SELF(NMDeviceBt); + #define MM_DBUS_SERVICE "org.freedesktop.ModemManager1" #define MM_DBUS_PATH "/org/freedesktop/ModemManager1" #define MM_DBUS_INTERFACE "org.freedesktop.ModemManager1" -#include "nm-device-logging.h" -_LOG_DECLARE_SELF(NMDeviceBt); +/*****************************************************************************/ -G_DEFINE_TYPE (NMDeviceBt, nm_device_bt, NM_TYPE_DEVICE) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_BT_NAME, + PROP_BT_CAPABILITIES, + PROP_BT_DEVICE, +); -#define NM_DEVICE_BT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_BT, NMDeviceBtPrivate)) +enum { + PPP_STATS, + LAST_SIGNAL, +}; -static gboolean modem_stage1 (NMDeviceBt *self, NMModem *modem, NMDeviceStateReason *reason); +static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { GDBusProxy *mm_proxy; @@ -77,22 +86,24 @@ typedef struct { guint32 bt_type; /* BT type of the current connection */ } NMDeviceBtPrivate; -enum { - PROP_0, - PROP_BT_NAME, - PROP_BT_CAPABILITIES, - PROP_BT_DEVICE, +struct _NMDeviceBt { + NMDevice parent; + NMDeviceBtPrivate _priv; +}; - LAST_PROP +struct _NMDeviceBtClass { + NMDeviceClass parent; }; -enum { - PPP_STATS, +G_DEFINE_TYPE (NMDeviceBt, nm_device_bt, NM_TYPE_DEVICE) - LAST_SIGNAL -}; -static guint signals[LAST_SIGNAL] = { 0 }; +#define NM_DEVICE_BT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceBt, NM_IS_DEVICE_BT) +/*****************************************************************************/ + +static gboolean modem_stage1 (NMDeviceBt *self, NMModem *modem, NMDeviceStateReason *reason); + +/*****************************************************************************/ guint32 nm_device_bt_get_capabilities (NMDeviceBt *self) { @@ -133,7 +144,7 @@ can_auto_connect (NMDevice *device, NMConnection *connection, char **specific_object) { - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device); guint32 bt_type; nm_assert (!specific_object || !*specific_object); @@ -152,7 +163,7 @@ can_auto_connect (NMDevice *device, static gboolean check_connection_compatible (NMDevice *device, NMConnection *connection) { - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device); NMSettingConnection *s_con; NMSettingBluetooth *s_bt; const char *bdaddr; @@ -190,7 +201,7 @@ check_connection_available (NMDevice *device, NMDeviceCheckConAvailableFlags flags, const char *specific_object) { - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device); guint32 bt_type; bt_type = get_connection_bt_type (connection); @@ -211,7 +222,7 @@ complete_connection (NMDevice *device, const GSList *existing_connections, GError **error) { - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device); NMSettingBluetooth *s_bt; const char *setting_bdaddr; const char *ctype; @@ -420,7 +431,7 @@ static void modem_auth_result (NMModem *modem, GError *error, gpointer user_data) { NMDevice *device = NM_DEVICE (user_data); - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device); NMDeviceStateReason reason = NM_DEVICE_STATE_REASON_NONE; if (error) { @@ -488,7 +499,7 @@ device_state_changed (NMDevice *device, NMDeviceState old_state, NMDeviceStateReason reason) { - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device); if (priv->modem) nm_modem_device_state_changed (priv->modem, new_state, old_state, reason); @@ -828,7 +839,7 @@ static NMActStageReturn act_stage2_config (NMDevice *device, NMDeviceStateReason *reason) { NMDeviceBt *self = NM_DEVICE_BT (device); - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (self); NMConnection *connection; connection = nm_device_get_applied_connection (device); @@ -863,11 +874,11 @@ act_stage3_ip4_config_start (NMDevice *device, NMIP4Config **out_config, NMDeviceStateReason *reason) { - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device); NMActStageReturn ret; if (priv->bt_type == NM_BT_CAPABILITY_DUN) { - ret = nm_modem_stage3_ip4_config_start (NM_DEVICE_BT_GET_PRIVATE (device)->modem, + ret = nm_modem_stage3_ip4_config_start (priv->modem, device, NM_DEVICE_CLASS (nm_device_bt_parent_class), reason); @@ -882,11 +893,11 @@ act_stage3_ip6_config_start (NMDevice *device, NMIP6Config **out_config, NMDeviceStateReason *reason) { - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device); NMActStageReturn ret; if (priv->bt_type == NM_BT_CAPABILITY_DUN) { - ret = nm_modem_stage3_ip6_config_start (NM_DEVICE_BT_GET_PRIVATE (device)->modem, + ret = nm_modem_stage3_ip6_config_start (priv->modem, nm_device_get_act_request (device), reason); } else @@ -898,7 +909,7 @@ act_stage3_ip6_config_start (NMDevice *device, static void deactivate (NMDevice *device) { - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (device); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) device); priv->have_iface = FALSE; priv->connected = FALSE; @@ -987,32 +998,56 @@ mm_name_owner_changed (GObject *object, /*****************************************************************************/ -NMDevice * -nm_device_bt_new (NMBluezDevice *bt_device, - const char *udi, - const char *bdaddr, - const char *name, - guint32 capabilities) +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) { - g_return_val_if_fail (udi != NULL, NULL); - g_return_val_if_fail (bdaddr != NULL, NULL); - g_return_val_if_fail (name != NULL, NULL); - g_return_val_if_fail (capabilities != NM_BT_CAPABILITY_NONE, NULL); - g_return_val_if_fail (NM_IS_BLUEZ_DEVICE (bt_device), NULL); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) object); - return (NMDevice *) g_object_new (NM_TYPE_DEVICE_BT, - NM_DEVICE_UDI, udi, - NM_DEVICE_IFACE, bdaddr, - NM_DEVICE_DRIVER, "bluez", - NM_DEVICE_PERM_HW_ADDRESS, bdaddr, - NM_DEVICE_BT_DEVICE, bt_device, - NM_DEVICE_BT_NAME, name, - NM_DEVICE_BT_CAPABILITIES, capabilities, - NM_DEVICE_TYPE_DESC, "Bluetooth", - NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_BT, - NULL); + switch (prop_id) { + case PROP_BT_NAME: + g_value_set_string (value, priv->name); + break; + case PROP_BT_CAPABILITIES: + g_value_set_uint (value, priv->capabilities); + break; + case PROP_BT_DEVICE: + g_value_set_object (value, priv->bt_device); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) object); + + switch (prop_id) { + case PROP_BT_NAME: + /* Construct only */ + priv->name = g_value_dup_string (value); + break; + case PROP_BT_CAPABILITIES: + /* Construct only */ + priv->capabilities = g_value_get_uint (value); + break; + case PROP_BT_DEVICE: + /* Construct only */ + priv->bt_device = g_value_dup_object (value); + g_signal_connect (priv->bt_device, "removed", G_CALLBACK (bluez_device_removed), object); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } } +/*****************************************************************************/ + static void nm_device_bt_init (NMDeviceBt *self) { @@ -1043,7 +1078,7 @@ nm_device_bt_init (NMDeviceBt *self) static void constructed (GObject *object) { - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) object); const char *my_hwaddr; G_OBJECT_CLASS (nm_device_bt_parent_class)->constructed (object); @@ -1058,58 +1093,36 @@ constructed (GObject *object) object); } -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_BT_NAME: - /* Construct only */ - priv->name = g_value_dup_string (value); - break; - case PROP_BT_CAPABILITIES: - /* Construct only */ - priv->capabilities = g_value_get_uint (value); - break; - case PROP_BT_DEVICE: - /* Construct only */ - priv->bt_device = g_value_dup_object (value); - g_signal_connect (priv->bt_device, "removed", G_CALLBACK (bluez_device_removed), object); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) +NMDevice * +nm_device_bt_new (NMBluezDevice *bt_device, + const char *udi, + const char *bdaddr, + const char *name, + guint32 capabilities) { - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object); + g_return_val_if_fail (udi != NULL, NULL); + g_return_val_if_fail (bdaddr != NULL, NULL); + g_return_val_if_fail (name != NULL, NULL); + g_return_val_if_fail (capabilities != NM_BT_CAPABILITY_NONE, NULL); + g_return_val_if_fail (NM_IS_BLUEZ_DEVICE (bt_device), NULL); - switch (prop_id) { - case PROP_BT_NAME: - g_value_set_string (value, priv->name); - break; - case PROP_BT_CAPABILITIES: - g_value_set_uint (value, priv->capabilities); - break; - case PROP_BT_DEVICE: - g_value_set_object (value, priv->bt_device); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + return (NMDevice *) g_object_new (NM_TYPE_DEVICE_BT, + NM_DEVICE_UDI, udi, + NM_DEVICE_IFACE, bdaddr, + NM_DEVICE_DRIVER, "bluez", + NM_DEVICE_PERM_HW_ADDRESS, bdaddr, + NM_DEVICE_BT_DEVICE, bt_device, + NM_DEVICE_BT_NAME, name, + NM_DEVICE_BT_CAPABILITIES, capabilities, + NM_DEVICE_TYPE_DESC, "Bluetooth", + NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_BT, + NULL); } static void dispose (GObject *object) { - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) object); nm_clear_g_source (&priv->timeout_id); @@ -1129,7 +1142,7 @@ dispose (GObject *object) static void finalize (GObject *object) { - NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE (object); + NMDeviceBtPrivate *priv = NM_DEVICE_BT_GET_PRIVATE ((NMDeviceBt *) object); g_free (priv->rfcomm_iface); g_free (priv->name); @@ -1144,8 +1157,6 @@ nm_device_bt_class_init (NMDeviceBtClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMDeviceBtPrivate)); - object_class->constructed = constructed; object_class->get_property = get_property; object_class->set_property = set_property; @@ -1166,37 +1177,33 @@ nm_device_bt_class_init (NMDeviceBtClass *klass) device_class->state_changed = device_state_changed; - /* Properties */ - g_object_class_install_property - (object_class, PROP_BT_NAME, - g_param_spec_string (NM_DEVICE_BT_NAME, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_BT_CAPABILITIES, - g_param_spec_uint (NM_DEVICE_BT_CAPABILITIES, "", "", - NM_BT_CAPABILITY_NONE, G_MAXUINT, NM_BT_CAPABILITY_NONE, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_BT_DEVICE, - g_param_spec_object (NM_DEVICE_BT_DEVICE, "", "", - NM_TYPE_BLUEZ_DEVICE, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - /* Signals */ + obj_properties[PROP_BT_NAME] = + g_param_spec_string (NM_DEVICE_BT_NAME, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_BT_CAPABILITIES] = + g_param_spec_uint (NM_DEVICE_BT_CAPABILITIES, "", "", + NM_BT_CAPABILITY_NONE, G_MAXUINT, NM_BT_CAPABILITY_NONE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_BT_DEVICE] = + g_param_spec_object (NM_DEVICE_BT_DEVICE, "", "", + NM_TYPE_BLUEZ_DEVICE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + signals[PPP_STATS] = - g_signal_new ("ppp-stats", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMDeviceBtClass, ppp_stats), - NULL, NULL, NULL, - G_TYPE_NONE, 2, - G_TYPE_UINT, G_TYPE_UINT); + g_signal_new ("ppp-stats", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 2, + G_TYPE_UINT, G_TYPE_UINT); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_BLUETOOTH_SKELETON, diff --git a/src/devices/bluetooth/nm-device-bt.h b/src/devices/bluetooth/nm-device-bt.h index c97cca0137..2308f0e8a3 100644 --- a/src/devices/bluetooth/nm-device-bt.h +++ b/src/devices/bluetooth/nm-device-bt.h @@ -25,27 +25,19 @@ #include "nm-bluez-device.h" #include "nm-modem.h" -#define NM_TYPE_DEVICE_BT (nm_device_bt_get_type ()) -#define NM_DEVICE_BT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_BT, NMDeviceBt)) -#define NM_DEVICE_BT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_BT, NMDeviceBtClass)) -#define NM_IS_DEVICE_BT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_BT)) -#define NM_IS_DEVICE_BT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_BT)) -#define NM_DEVICE_BT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_BT, NMDeviceBtClass)) +#define NM_TYPE_DEVICE_BT (nm_device_bt_get_type ()) +#define NM_DEVICE_BT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_BT, NMDeviceBt)) +#define NM_DEVICE_BT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_BT, NMDeviceBtClass)) +#define NM_IS_DEVICE_BT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_BT)) +#define NM_IS_DEVICE_BT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_BT)) +#define NM_DEVICE_BT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_BT, NMDeviceBtClass)) #define NM_DEVICE_BT_NAME "name" #define NM_DEVICE_BT_CAPABILITIES "bt-capabilities" #define NM_DEVICE_BT_DEVICE "bt-device" -typedef struct { - NMDevice parent; -} NMDeviceBt; - -typedef struct { - NMDeviceClass parent; - - /* Signals */ - void (*ppp_stats) (NMDeviceBt *device, guint32 in_bytes, guint32 out_bytes); -} NMDeviceBtClass; +typedef struct _NMDeviceBt NMDeviceBt; +typedef struct _NMDeviceBtClass NMDeviceBtClass; GType nm_device_bt_get_type (void); diff --git a/src/devices/nm-arping-manager.c b/src/devices/nm-arping-manager.c index dfb20b4b51..0d3a3ea692 100644 --- a/src/devices/nm-arping-manager.c +++ b/src/devices/nm-arping-manager.c @@ -16,15 +16,18 @@ #include "nm-default.h" +#include "nm-arping-manager.h" + #include <netinet/in.h> #include <sys/types.h> #include <sys/wait.h> -#include "nm-arping-manager.h" #include "nm-platform.h" #include "nm-utils.h" #include "NetworkManagerUtils.h" +/*****************************************************************************/ + typedef enum { STATE_INIT, STATE_PROBING, @@ -33,15 +36,6 @@ typedef enum { } State; typedef struct { - int ifindex; - State state; - GHashTable *addresses; - guint completed; - guint timer; - guint round2_id; -} NMArpingManagerPrivate; - -typedef struct { in_addr_t address; GPid pid; guint watch; @@ -49,15 +43,38 @@ typedef struct { NMArpingManager *manager; } AddressInfo; +/*****************************************************************************/ + enum { PROBE_TERMINATED, LAST_SIGNAL, }; + static guint signals[LAST_SIGNAL] = { 0 }; +typedef struct { + int ifindex; + State state; + GHashTable *addresses; + guint completed; + guint timer; + guint round2_id; +} NMArpingManagerPrivate; + +struct _NMArpingManager { + GObject parent; + NMArpingManagerPrivate _priv; +}; + +struct _NMArpingManagerClass { + GObjectClass parent; +}; + G_DEFINE_TYPE (NMArpingManager, nm_arping_manager, G_TYPE_OBJECT) -#define NM_ARPING_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_ARPING_MANAGER, NMArpingManagerPrivate)) +#define NM_ARPING_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMArpingManager, NM_IS_ARPING_MANAGER) + +/*****************************************************************************/ #define _NMLOG_DOMAIN LOGD_IP4 #define _NMLOG_PREFIX_NAME "arping" @@ -74,6 +91,8 @@ G_DEFINE_TYPE (NMArpingManager, nm_arping_manager, G_TYPE_OBJECT) _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ } G_STMT_END +/*****************************************************************************/ + /** * nm_arping_manager_add_address: * @self: a #NMArpingManager @@ -350,7 +369,7 @@ send_announcements (NMArpingManager *self, const char *mode_arg) static gboolean arp_announce_round2 (gpointer self) { - NMArpingManagerPrivate *priv = NM_ARPING_MANAGER_GET_PRIVATE (self); + NMArpingManagerPrivate *priv = NM_ARPING_MANAGER_GET_PRIVATE ((NMArpingManager *) self); priv->round2_id = 0; send_announcements (self, "-U"); @@ -395,18 +414,7 @@ destroy_address_info (gpointer data) g_slice_free (AddressInfo, info); } -static void -dispose (GObject *object) -{ - NMArpingManager *self = NM_ARPING_MANAGER (object); - NMArpingManagerPrivate *priv = NM_ARPING_MANAGER_GET_PRIVATE (self); - - nm_clear_g_source (&priv->timer); - nm_clear_g_source (&priv->round2_id); - g_clear_pointer (&priv->addresses, g_hash_table_destroy); - - G_OBJECT_CLASS (nm_arping_manager_parent_class)->dispose (object); -} +/*****************************************************************************/ static void nm_arping_manager_init (NMArpingManager *self) @@ -427,23 +435,33 @@ nm_arping_manager_new (int ifindex) self = g_object_new (NM_TYPE_ARPING_MANAGER, NULL); priv = NM_ARPING_MANAGER_GET_PRIVATE (self); priv->ifindex = ifindex; - return self; } static void +dispose (GObject *object) +{ + NMArpingManager *self = NM_ARPING_MANAGER (object); + NMArpingManagerPrivate *priv = NM_ARPING_MANAGER_GET_PRIVATE (self); + + nm_clear_g_source (&priv->timer); + nm_clear_g_source (&priv->round2_id); + g_clear_pointer (&priv->addresses, g_hash_table_destroy); + + G_OBJECT_CLASS (nm_arping_manager_parent_class)->dispose (object); +} + +static void nm_arping_manager_class_init (NMArpingManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMArpingManagerPrivate)); - object_class->dispose = dispose; signals[PROBE_TERMINATED] = - g_signal_new (NM_ARPING_MANAGER_PROBE_TERMINATED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - 0, NULL, NULL, NULL, - G_TYPE_NONE, 0); + g_signal_new (NM_ARPING_MANAGER_PROBE_TERMINATED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 0); } diff --git a/src/devices/nm-arping-manager.h b/src/devices/nm-arping-manager.h index 78965a0df2..c8a86af030 100644 --- a/src/devices/nm-arping-manager.h +++ b/src/devices/nm-arping-manager.h @@ -28,13 +28,7 @@ #define NM_ARPING_MANAGER_PROBE_TERMINATED "probe-terminated" -struct _NMArpingManager { - GObject parent; -}; - -typedef struct { - GObjectClass parent; -} NMArpingManagerClass; +typedef struct _NMArpingManagerClass NMArpingManagerClass; GType nm_arping_manager_get_type (void); diff --git a/src/devices/nm-device-bond.c b/src/devices/nm-device-bond.c index 3f17849b0a..6d3a2facad 100644 --- a/src/devices/nm-device-bond.c +++ b/src/devices/nm-device-bond.c @@ -20,10 +20,11 @@ #include "nm-default.h" +#include "nm-device-bond.h" + #include <errno.h> #include <stdlib.h> -#include "nm-device-bond.h" #include "NetworkManagerUtils.h" #include "nm-device-private.h" #include "nm-platform.h" @@ -37,15 +38,19 @@ #include "nm-device-logging.h" _LOG_DECLARE_SELF(NMDeviceBond); -G_DEFINE_TYPE (NMDeviceBond, nm_device_bond, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_BOND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_BOND, NMDeviceBondPrivate)) +struct _NMDeviceBond { + NMDevice parent; +}; -typedef struct { - int dummy; -} NMDeviceBondPrivate; +struct _NMDeviceBondClass { + NMDeviceClass parent; +}; -/******************************************************************/ +G_DEFINE_TYPE (NMDeviceBond, nm_device_bond, NM_TYPE_DEVICE) + +/*****************************************************************************/ static NMDeviceCapabilities get_generic_capabilities (NMDevice *dev) @@ -115,7 +120,7 @@ complete_connection (NMDevice *device, return TRUE; } -/******************************************************************/ +/*****************************************************************************/ static gboolean set_bond_attr (NMDevice *device, NMBondMode mode, const char *attr, const char *value) @@ -482,7 +487,7 @@ create_and_realize (NMDevice *device, return TRUE; } -/******************************************************************/ +/*****************************************************************************/ static void nm_device_bond_init (NMDeviceBond * self) @@ -492,11 +497,8 @@ nm_device_bond_init (NMDeviceBond * self) static void nm_device_bond_class_init (NMDeviceBondClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMDeviceBondPrivate)); - NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_BOND_SETTING_NAME, NM_LINK_TYPE_BOND) parent_class->get_generic_capabilities = get_generic_capabilities; @@ -519,7 +521,7 @@ nm_device_bond_class_init (NMDeviceBondClass *klass) NULL); } -/*************************************************************/ +/*****************************************************************************/ #define NM_TYPE_BOND_FACTORY (nm_bond_factory_get_type ()) #define NM_BOND_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BOND_FACTORY, NMBondFactory)) @@ -545,5 +547,4 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (BOND, Bond, bond, NM_DEVICE_FACTORY_DECLARE_LINK_TYPES (NM_LINK_TYPE_BOND) NM_DEVICE_FACTORY_DECLARE_SETTING_TYPES (NM_SETTING_BOND_SETTING_NAME), factory_iface->create_device = create_device; - ) - +); diff --git a/src/devices/nm-device-bond.h b/src/devices/nm-device-bond.h index 02b6c8e540..b4e9b0e883 100644 --- a/src/devices/nm-device-bond.h +++ b/src/devices/nm-device-bond.h @@ -30,8 +30,8 @@ #define NM_IS_DEVICE_BOND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_BOND)) #define NM_DEVICE_BOND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_BOND, NMDeviceBondClass)) -typedef NMDevice NMDeviceBond; -typedef NMDeviceClass NMDeviceBondClass; +typedef struct _NMDeviceBond NMDeviceBond; +typedef struct _NMDeviceBondClass NMDeviceBondClass; GType nm_device_bond_get_type (void); diff --git a/src/devices/nm-device-bridge.c b/src/devices/nm-device-bridge.c index c35d286396..f5c236bd80 100644 --- a/src/devices/nm-device-bridge.c +++ b/src/devices/nm-device-bridge.c @@ -20,9 +20,10 @@ #include "nm-default.h" +#include "nm-device-bridge.h" + #include <stdlib.h> -#include "nm-device-bridge.h" #include "NetworkManagerUtils.h" #include "nm-device-private.h" #include "nm-enum-types.h" @@ -35,15 +36,19 @@ #include "nm-device-logging.h" _LOG_DECLARE_SELF(NMDeviceBridge); -G_DEFINE_TYPE (NMDeviceBridge, nm_device_bridge, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_BRIDGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_BRIDGE, NMDeviceBridgePrivate)) +struct _NMDeviceBridge { + NMDevice parent; +}; -typedef struct { - int dummy; -} NMDeviceBridgePrivate; +struct _NMDeviceBridgeClass { + NMDeviceClass parent; +}; + +G_DEFINE_TYPE (NMDeviceBridge, nm_device_bridge, NM_TYPE_DEVICE) -/******************************************************************/ +/*****************************************************************************/ static NMDeviceCapabilities get_generic_capabilities (NMDevice *dev) @@ -121,7 +126,7 @@ complete_connection (NMDevice *device, return TRUE; } -/******************************************************************/ +/*****************************************************************************/ typedef struct { const char *name; @@ -411,7 +416,7 @@ create_and_realize (NMDevice *device, return TRUE; } -/******************************************************************/ +/*****************************************************************************/ static void nm_device_bridge_init (NMDeviceBridge * self) @@ -421,11 +426,8 @@ nm_device_bridge_init (NMDeviceBridge * self) static void nm_device_bridge_class_init (NMDeviceBridgeClass *klass) { - GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMDeviceBridgePrivate)); - NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_BRIDGE_SETTING_NAME, NM_LINK_TYPE_BRIDGE) parent_class->get_generic_capabilities = get_generic_capabilities; @@ -447,7 +449,7 @@ nm_device_bridge_class_init (NMDeviceBridgeClass *klass) NULL); } -/*************************************************************/ +/*****************************************************************************/ #define NM_TYPE_BRIDGE_FACTORY (nm_bridge_factory_get_type ()) #define NM_BRIDGE_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_BRIDGE_FACTORY, NMBridgeFactory)) @@ -473,5 +475,4 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (BRIDGE, Bridge, bridge, NM_DEVICE_FACTORY_DECLARE_LINK_TYPES (NM_LINK_TYPE_BRIDGE) NM_DEVICE_FACTORY_DECLARE_SETTING_TYPES (NM_SETTING_BRIDGE_SETTING_NAME), factory_iface->create_device = create_device; - ) - +); diff --git a/src/devices/nm-device-bridge.h b/src/devices/nm-device-bridge.h index 05da9ed751..f0fa1f4b64 100644 --- a/src/devices/nm-device-bridge.h +++ b/src/devices/nm-device-bridge.h @@ -30,8 +30,8 @@ #define NM_IS_DEVICE_BRIDGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_BRIDGE)) #define NM_DEVICE_BRIDGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_BRIDGE, NMDeviceBridgeClass)) -typedef NMDevice NMDeviceBridge; -typedef NMDeviceClass NMDeviceBridgeClass; +typedef struct _NMDeviceBridge NMDeviceBridge; +typedef struct _NMDeviceBridgeClass NMDeviceBridgeClass; GType nm_device_bridge_get_type (void); diff --git a/src/devices/nm-device-ethernet.c b/src/devices/nm-device-ethernet.c index b213a0ccfc..fd80a607a2 100644 --- a/src/devices/nm-device-ethernet.c +++ b/src/devices/nm-device-ethernet.c @@ -32,12 +32,14 @@ #include <gudev/gudev.h> #include "nm-device-private.h" -#include "nm-activation-request.h" +#include "nm-act-request.h" +#include "nm-ip4-config.h" #include "NetworkManagerUtils.h" #include "nm-supplicant-manager.h" #include "nm-supplicant-interface.h" #include "nm-supplicant-config.h" #include "ppp-manager/nm-ppp-manager.h" +#include "ppp-manager/nm-ppp-status.h" #include "nm-enum-types.h" #include "nm-platform.h" #include "nm-platform-utils.h" @@ -955,7 +957,7 @@ pppoe_stage3_ip4_config_start (NMDeviceEthernet *self, NMDeviceStateReason *reas return ret; } -/****************************************************************/ +/*****************************************************************************/ static void dcb_state (NMDevice *device, gboolean timeout); @@ -1123,7 +1125,7 @@ dcb_carrier_changed (NMDevice *device, GParamSpec *pspec, gpointer unused) } } -/****************************************************************/ +/*****************************************************************************/ static gboolean wake_on_lan_enable (NMDevice *device) @@ -1164,7 +1166,7 @@ found: return nm_platform_ethtool_set_wake_on_lan (NM_PLATFORM_GET, nm_device_get_iface (device), wol, password); } -/****************************************************************/ +/*****************************************************************************/ static NMActStageReturn act_stage2_config (NMDevice *device, NMDeviceStateReason *reason) @@ -1633,7 +1635,6 @@ nm_device_ethernet_class_init (NMDeviceEthernetClass *klass) NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_WIRED_SETTING_NAME, NM_LINK_TYPE_ETHERNET) - /* virtual methods */ object_class->constructed = constructed; object_class->dispose = dispose; object_class->finalize = finalize; @@ -1677,7 +1678,7 @@ nm_device_ethernet_class_init (NMDeviceEthernetClass *klass) NULL); } -/*************************************************************/ +/*****************************************************************************/ #define NM_TYPE_ETHERNET_FACTORY (nm_ethernet_factory_get_type ()) #define NM_ETHERNET_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_ETHERNET_FACTORY, NMEthernetFactory)) diff --git a/src/devices/nm-device-ethernet.h b/src/devices/nm-device-ethernet.h index 3ce6f0ca4b..a50a7d851b 100644 --- a/src/devices/nm-device-ethernet.h +++ b/src/devices/nm-device-ethernet.h @@ -42,7 +42,7 @@ typedef struct { } NMDeviceEthernet; typedef struct { - NMDeviceClass parent_class; + NMDeviceClass parent; } NMDeviceEthernetClass; GType nm_device_ethernet_get_type (void); diff --git a/src/devices/nm-device-factory.c b/src/devices/nm-device-factory.c index 7873756f9e..840328437c 100644 --- a/src/devices/nm-device-factory.c +++ b/src/devices/nm-device-factory.c @@ -213,7 +213,7 @@ nm_device_factory_get_connection_iface (NMDeviceFactory *factory, return ifname; } -/*******************************************************************/ +/*****************************************************************************/ static void nm_device_factory_default_init (NMDeviceFactoryInterface *factory_iface) @@ -234,7 +234,7 @@ nm_device_factory_default_init (NMDeviceFactoryInterface *factory_iface) G_TYPE_BOOLEAN, 1, G_TYPE_OBJECT); } -/*******************************************************************/ +/*****************************************************************************/ static GSList *internal_types = NULL; static GHashTable *factories_by_link = NULL; diff --git a/src/devices/nm-device-factory.h b/src/devices/nm-device-factory.h index 4a62468c88..0179e85534 100644 --- a/src/devices/nm-device-factory.h +++ b/src/devices/nm-device-factory.h @@ -48,7 +48,7 @@ NMDeviceFactory *nm_device_factory_create (GError **error); /* Should match nm_device_factory_create() */ typedef NMDeviceFactory * (*NMDeviceFactoryCreateFunc) (GError **error); -/********************************************************************/ +/*****************************************************************************/ #define NM_TYPE_DEVICE_FACTORY (nm_device_factory_get_type ()) #define NM_DEVICE_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_FACTORY, NMDeviceFactory)) diff --git a/src/devices/nm-device-generic.c b/src/devices/nm-device-generic.c index a0ce8a0494..dc8828a96d 100644 --- a/src/devices/nm-device-generic.c +++ b/src/devices/nm-device-generic.c @@ -21,6 +21,7 @@ #include "nm-default.h" #include "nm-device-generic.h" + #include "nm-device-private.h" #include "nm-enum-types.h" #include "nm-platform.h" @@ -28,21 +29,31 @@ #include "nmdbus-device-generic.h" -G_DEFINE_TYPE (NMDeviceGeneric, nm_device_generic, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_GENERIC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_GENERIC, NMDeviceGenericPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_TYPE_DESCRIPTION, +); typedef struct { char *type_description; } NMDeviceGenericPrivate; -enum { - PROP_0, - PROP_TYPE_DESCRIPTION, +struct _NMDeviceGeneric { + NMDevice parent; + NMDeviceGenericPrivate _priv; +}; - LAST_PROP +struct _NMDeviceGenericClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceGeneric, nm_device_generic, NM_TYPE_DEVICE) + +#define NM_DEVICE_GENERIC_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceGeneric, NM_IS_DEVICE_GENERIC) + +/*****************************************************************************/ + static NMDeviceCapabilities get_generic_capabilities (NMDevice *dev) { @@ -55,8 +66,8 @@ get_generic_capabilities (NMDevice *dev) static const char * get_type_description (NMDevice *device) { - if (NM_DEVICE_GENERIC_GET_PRIVATE (device)->type_description) - return NM_DEVICE_GENERIC_GET_PRIVATE (device)->type_description; + if (NM_DEVICE_GENERIC_GET_PRIVATE ((NMDeviceGeneric *) device)->type_description) + return NM_DEVICE_GENERIC_GET_PRIVATE ((NMDeviceGeneric *) device)->type_description; return NM_DEVICE_CLASS (nm_device_generic_parent_class)->get_type_description (device); } @@ -108,21 +119,44 @@ update_connection (NMDevice *device, NMConnection *connection) NULL); } -/**************************************************************/ +/*****************************************************************************/ -NMDevice * -nm_device_generic_new (const NMPlatformLink *plink, gboolean nm_plugin_missing) +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) { - g_return_val_if_fail (plink != NULL, NULL); + NMDeviceGeneric *self = NM_DEVICE_GENERIC (object); + NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (self); - return (NMDevice *) g_object_new (NM_TYPE_DEVICE_GENERIC, - NM_DEVICE_IFACE, plink->name, - NM_DEVICE_TYPE_DESC, "Generic", - NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_GENERIC, - NM_DEVICE_NM_PLUGIN_MISSING, nm_plugin_missing, - NULL); + switch (prop_id) { + case PROP_TYPE_DESCRIPTION: + g_value_set_string (value, priv->type_description); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMDeviceGeneric *self = NM_DEVICE_GENERIC (object); + NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (self); + + switch (prop_id) { + case PROP_TYPE_DESCRIPTION: + priv->type_description = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } } +/*****************************************************************************/ + static void nm_device_generic_init (NMDeviceGeneric *self) { @@ -144,49 +178,28 @@ constructor (GType type, return object; } -static void -dispose (GObject *object) +NMDevice * +nm_device_generic_new (const NMPlatformLink *plink, gboolean nm_plugin_missing) { - NMDeviceGeneric *self = NM_DEVICE_GENERIC (object); - NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (self); - - g_clear_pointer (&priv->type_description, g_free); + g_return_val_if_fail (plink != NULL, NULL); - G_OBJECT_CLASS (nm_device_generic_parent_class)->dispose (object); + return (NMDevice *) g_object_new (NM_TYPE_DEVICE_GENERIC, + NM_DEVICE_IFACE, plink->name, + NM_DEVICE_TYPE_DESC, "Generic", + NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_GENERIC, + NM_DEVICE_NM_PLUGIN_MISSING, nm_plugin_missing, + NULL); } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) +dispose (GObject *object) { NMDeviceGeneric *self = NM_DEVICE_GENERIC (object); NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (self); - switch (prop_id) { - case PROP_TYPE_DESCRIPTION: - g_value_set_string (value, priv->type_description); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - NMDeviceGeneric *self = NM_DEVICE_GENERIC (object); - NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (self); + g_clear_pointer (&priv->type_description, g_free); - switch (prop_id) { - case PROP_TYPE_DESCRIPTION: - priv->type_description = g_value_dup_string (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + G_OBJECT_CLASS (nm_device_generic_parent_class)->dispose (object); } static void @@ -195,8 +208,6 @@ nm_device_generic_class_init (NMDeviceGenericClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMDeviceGenericPrivate)); - NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_GENERIC_SETTING_NAME, NM_LINK_TYPE_ANY) object_class->constructor = constructor; @@ -210,13 +221,13 @@ nm_device_generic_class_init (NMDeviceGenericClass *klass) parent_class->check_connection_compatible = check_connection_compatible; parent_class->update_connection = update_connection; - /* properties */ - g_object_class_install_property - (object_class, PROP_TYPE_DESCRIPTION, - g_param_spec_string (NM_DEVICE_GENERIC_TYPE_DESCRIPTION, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_TYPE_DESCRIPTION] = + g_param_spec_string (NM_DEVICE_GENERIC_TYPE_DESCRIPTION, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_GENERIC_SKELETON, diff --git a/src/devices/nm-device-generic.h b/src/devices/nm-device-generic.h index d988a5e2a1..424421806f 100644 --- a/src/devices/nm-device-generic.h +++ b/src/devices/nm-device-generic.h @@ -32,14 +32,8 @@ #define NM_DEVICE_GENERIC_TYPE_DESCRIPTION "type-description" -typedef struct { - NMDevice parent; -} NMDeviceGeneric; - -typedef struct { - NMDeviceClass parent; - -} NMDeviceGenericClass; +typedef struct _NMDeviceGeneric NMDeviceGeneric; +typedef struct _NMDeviceGenericClass NMDeviceGenericClass; GType nm_device_generic_get_type (void); diff --git a/src/devices/nm-device-infiniband.c b/src/devices/nm-device-infiniband.c index 17f50ba2c7..56bdcb6de0 100644 --- a/src/devices/nm-device-infiniband.c +++ b/src/devices/nm-device-infiniband.c @@ -20,13 +20,14 @@ #include "nm-default.h" +#include "nm-device-infiniband.h" + #include <linux/if_infiniband.h> -#include "nm-device-infiniband.h" #include "NetworkManagerUtils.h" #include "nm-device-private.h" #include "nm-enum-types.h" -#include "nm-activation-request.h" +#include "nm-act-request.h" #include "nm-ip4-config.h" #include "nm-platform.h" #include "nm-device-factory.h" @@ -34,32 +35,41 @@ #include "nmdbus-device-infiniband.h" -G_DEFINE_TYPE (NMDeviceInfiniband, nm_device_infiniband, NM_TYPE_DEVICE) +#define NM_DEVICE_INFINIBAND_IS_PARTITION "is-partition" -#define NM_DEVICE_INFINIBAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandPrivate)) +/*****************************************************************************/ -#define NM_DEVICE_INFINIBAND_IS_PARTITION "is-partition" +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_IS_PARTITION, +); typedef struct { gboolean is_partition; - int parent_ifindex, p_key; + int parent_ifindex; + int p_key; } NMDeviceInfinibandPrivate; -enum { - PROP_0, - PROP_IS_PARTITION, +struct _NMDeviceInfiniband { + NMDevice parent; + NMDeviceInfinibandPrivate _priv; +}; - LAST_PROP +struct _NMDeviceInfinibandClass { + NMDeviceClass parent; }; -/*************************************************************/ +G_DEFINE_TYPE (NMDeviceInfiniband, nm_device_infiniband, NM_TYPE_DEVICE) + +#define NM_DEVICE_INFINIBAND_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceInfiniband, NM_IS_DEVICE_INFINIBAND) + +/*****************************************************************************/ static NMDeviceCapabilities -get_generic_capabilities (NMDevice *dev) +get_generic_capabilities (NMDevice *device) { guint32 caps = NM_DEVICE_CAP_CARRIER_DETECT; - if (NM_DEVICE_INFINIBAND_GET_PRIVATE (dev)->is_partition) + if (NM_DEVICE_INFINIBAND_GET_PRIVATE ((NMDeviceInfiniband *) device)->is_partition) caps |= NM_DEVICE_CAP_IS_SOFTWARE; return caps; @@ -241,7 +251,7 @@ create_and_realize (NMDevice *device, const NMPlatformLink **out_plink, GError **error) { - NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (device); + NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE ((NMDeviceInfiniband *) device); NMSettingInfiniband *s_infiniband; NMPlatformError plerr; @@ -294,11 +304,13 @@ create_and_realize (NMDevice *device, static gboolean unrealize (NMDevice *device, GError **error) { - NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (device); + NMDeviceInfinibandPrivate *priv; NMPlatformError plerr; g_return_val_if_fail (NM_IS_DEVICE_INFINIBAND (device), FALSE); + priv = NM_DEVICE_INFINIBAND_GET_PRIVATE ((NMDeviceInfiniband *) device); + if (priv->p_key < 0) { g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED, "Only InfiniBand partitions can be removed"); @@ -317,12 +329,7 @@ unrealize (NMDevice *device, GError **error) return TRUE; } -/*************************************************************/ - -static void -nm_device_infiniband_init (NMDeviceInfiniband * self) -{ -} +/*****************************************************************************/ static void get_property (GObject *object, guint prop_id, @@ -330,7 +337,7 @@ get_property (GObject *object, guint prop_id, { switch (prop_id) { case PROP_IS_PARTITION: - g_value_set_boolean (value, NM_DEVICE_INFINIBAND_GET_PRIVATE (object)->is_partition); + g_value_set_boolean (value, NM_DEVICE_INFINIBAND_GET_PRIVATE ((NMDeviceInfiniband *) object)->is_partition); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -340,11 +347,11 @@ get_property (GObject *object, guint prop_id, static void set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) + const GValue *value, GParamSpec *pspec) { switch (prop_id) { case PROP_IS_PARTITION: - NM_DEVICE_INFINIBAND_GET_PRIVATE (object)->is_partition = g_value_get_boolean (value); + NM_DEVICE_INFINIBAND_GET_PRIVATE ((NMDeviceInfiniband *) object)->is_partition = g_value_get_boolean (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -352,17 +359,21 @@ set_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + +static void +nm_device_infiniband_init (NMDeviceInfiniband * self) +{ +} + static void nm_device_infiniband_class_init (NMDeviceInfinibandClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMDeviceInfinibandPrivate)); - NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_INFINIBAND_SETTING_NAME, NM_LINK_TYPE_INFINIBAND) - /* virtual methods */ object_class->get_property = get_property; object_class->set_property = set_property; @@ -376,20 +387,20 @@ nm_device_infiniband_class_init (NMDeviceInfinibandClass *klass) parent_class->act_stage1_prepare = act_stage1_prepare; parent_class->ip4_config_pre_commit = ip4_config_pre_commit; - /* properties */ - g_object_class_install_property - (object_class, PROP_IS_PARTITION, - g_param_spec_boolean (NM_DEVICE_INFINIBAND_IS_PARTITION, "", "", - FALSE, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_IS_PARTITION] = + g_param_spec_boolean (NM_DEVICE_INFINIBAND_IS_PARTITION, "", "", + FALSE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_INFINIBAND_SKELETON, NULL); } -/*************************************************************/ +/*****************************************************************************/ #define NM_TYPE_INFINIBAND_FACTORY (nm_infiniband_factory_get_type ()) #define NM_INFINIBAND_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_INFINIBAND_FACTORY, NMInfinibandFactory)) @@ -464,5 +475,4 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (INFINIBAND, Infiniband, infiniband, factory_iface->create_device = create_device; factory_iface->get_connection_parent = get_connection_parent; factory_iface->get_connection_iface = get_connection_iface; - ) - +) diff --git a/src/devices/nm-device-infiniband.h b/src/devices/nm-device-infiniband.h index a74d07a51f..719c9cc9fd 100644 --- a/src/devices/nm-device-infiniband.h +++ b/src/devices/nm-device-infiniband.h @@ -23,15 +23,15 @@ #include "nm-device.h" -#define NM_TYPE_DEVICE_INFINIBAND (nm_device_infiniband_get_type ()) -#define NM_DEVICE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfiniband)) -#define NM_DEVICE_INFINIBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandClass)) -#define NM_IS_DEVICE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_INFINIBAND)) -#define NM_IS_DEVICE_INFINIBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_INFINIBAND)) -#define NM_DEVICE_INFINIBAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandClass)) +#define NM_TYPE_DEVICE_INFINIBAND (nm_device_infiniband_get_type ()) +#define NM_DEVICE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfiniband)) +#define NM_DEVICE_INFINIBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandClass)) +#define NM_IS_DEVICE_INFINIBAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_INFINIBAND)) +#define NM_IS_DEVICE_INFINIBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_INFINIBAND)) +#define NM_DEVICE_INFINIBAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandClass)) -typedef NMDevice NMDeviceInfiniband; -typedef NMDeviceClass NMDeviceInfinibandClass; +typedef struct _NMDeviceInfiniband NMDeviceInfiniband; +typedef struct _NMDeviceInfinibandClass NMDeviceInfinibandClass; GType nm_device_infiniband_get_type (void); diff --git a/src/devices/nm-device-ip-tunnel.c b/src/devices/nm-device-ip-tunnel.c index 785010ebfa..1bb9f2f069 100644 --- a/src/devices/nm-device-ip-tunnel.c +++ b/src/devices/nm-device-ip-tunnel.c @@ -34,7 +34,7 @@ #include "nm-device-factory.h" #include "nm-core-internal.h" #include "nm-settings.h" -#include "nm-activation-request.h" +#include "nm-act-request.h" #include "nm-ip4-config.h" #include "nmdbus-device-ip-tunnel.h" @@ -42,9 +42,21 @@ #include "nm-device-logging.h" _LOG_DECLARE_SELF(NMDeviceIPTunnel); -G_DEFINE_TYPE (NMDeviceIPTunnel, nm_device_ip_tunnel, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_IP_TUNNEL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_IP_TUNNEL, NMDeviceIPTunnelPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceIPTunnel, + PROP_MODE, + PROP_PARENT, + PROP_LOCAL, + PROP_REMOTE, + PROP_TTL, + PROP_TOS, + PROP_PATH_MTU_DISCOVERY, + PROP_INPUT_KEY, + PROP_OUTPUT_KEY, + PROP_ENCAPSULATION_LIMIT, + PROP_FLOW_LABEL, +); typedef struct { NMIPTunnelMode mode; @@ -62,24 +74,20 @@ typedef struct { guint32 flow_label; } NMDeviceIPTunnelPrivate; -enum { - PROP_0, - PROP_MODE, - PROP_PARENT, - PROP_LOCAL, - PROP_REMOTE, - PROP_TTL, - PROP_TOS, - PROP_PATH_MTU_DISCOVERY, - PROP_INPUT_KEY, - PROP_OUTPUT_KEY, - PROP_ENCAPSULATION_LIMIT, - PROP_FLOW_LABEL, +struct _NMDeviceIPTunnel { + NMDevice parent; + NMDeviceIPTunnelPrivate _priv; +}; - LAST_PROP +struct _NMDeviceIPTunnelClass { + NMDeviceClass parent; }; -/**************************************************************/ +G_DEFINE_TYPE (NMDeviceIPTunnel, nm_device_ip_tunnel, NM_TYPE_DEVICE) + +#define NM_DEVICE_IP_TUNNEL_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceIPTunnel, NM_IS_DEVICE_IP_TUNNEL) + +/*****************************************************************************/ static gboolean address_equal_pp (int family, const char *a, const char *b) @@ -118,7 +126,6 @@ update_properties_from_ifindex (NMDevice *device, int ifindex) { NMDeviceIPTunnel *self = NM_DEVICE_IP_TUNNEL (device); NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE (self); - GObject *object = G_OBJECT (device); NMDevice *parent; int parent_ifindex; in_addr_t local4, remote4; @@ -133,23 +140,23 @@ clear: if (priv->parent || priv->parent_ifindex) { g_clear_object (&priv->parent); priv->parent_ifindex = 0; - g_object_notify (object, NM_DEVICE_IP_TUNNEL_PARENT); + _notify (self, PROP_PARENT); } if (priv->local) { g_clear_pointer (&priv->local, g_free); - g_object_notify (object, NM_DEVICE_IP_TUNNEL_LOCAL); + _notify (self, PROP_LOCAL); } if (priv->remote) { g_clear_pointer (&priv->remote, g_free); - g_object_notify (object, NM_DEVICE_IP_TUNNEL_REMOTE); + _notify (self, PROP_REMOTE); } if (priv->input_key) { g_clear_pointer (&priv->input_key, g_free); - g_object_notify (object, NM_DEVICE_IP_TUNNEL_INPUT_KEY); + _notify (self, PROP_INPUT_KEY); } if (priv->output_key) { g_clear_pointer (&priv->output_key, g_free); - g_object_notify (object, NM_DEVICE_IP_TUNNEL_OUTPUT_KEY); + _notify (self, PROP_OUTPUT_KEY); } goto out; @@ -176,13 +183,13 @@ clear: if (g_strcmp0 (priv->input_key, key)) { g_free (priv->input_key); priv->input_key = key; - g_object_notify (object, NM_DEVICE_IP_TUNNEL_INPUT_KEY); + _notify (self, PROP_INPUT_KEY); } else g_free (key); } else { if (priv->input_key) { g_clear_pointer (&priv->input_key, g_free); - g_object_notify (object, NM_DEVICE_IP_TUNNEL_INPUT_KEY); + _notify (self, PROP_INPUT_KEY); } } @@ -191,13 +198,13 @@ clear: if (g_strcmp0 (priv->output_key, key)) { g_free (priv->output_key); priv->output_key = key; - g_object_notify (object, NM_DEVICE_IP_TUNNEL_OUTPUT_KEY); + _notify (self, PROP_OUTPUT_KEY); } else g_free (key); } else { if (priv->output_key) { g_clear_pointer (&priv->output_key, g_free); - g_object_notify (object, NM_DEVICE_IP_TUNNEL_OUTPUT_KEY); + _notify (self, PROP_OUTPUT_KEY); } } } else if (priv->mode == NM_IP_TUNNEL_MODE_SIT) { @@ -256,7 +263,7 @@ clear: parent = nm_manager_get_device_by_ifindex (nm_manager_get (), parent_ifindex); if (parent) priv->parent = g_object_ref (parent); - g_object_notify (object, NM_DEVICE_IP_TUNNEL_PARENT); + _notify (self, PROP_PARENT); } if (priv->addr_family == AF_INET) { @@ -264,28 +271,28 @@ clear: g_clear_pointer (&priv->local, g_free); if (local4) priv->local = g_strdup (nm_utils_inet4_ntop (local4, NULL)); - g_object_notify (object, NM_DEVICE_IP_TUNNEL_LOCAL); + _notify (self, PROP_LOCAL); } if (!address_equal_pn (AF_INET, priv->remote, &remote4)) { g_clear_pointer (&priv->remote, g_free); if (remote4) priv->remote = g_strdup (nm_utils_inet4_ntop (remote4, NULL)); - g_object_notify (object, NM_DEVICE_IP_TUNNEL_REMOTE); + _notify (self, PROP_REMOTE); } } else { if (!address_equal_pn (AF_INET6, priv->local, &local6)) { g_clear_pointer (&priv->local, g_free); if (memcmp (&local6, &in6addr_any, sizeof (in6addr_any))) priv->local = g_strdup (nm_utils_inet6_ntop (&local6, NULL)); - g_object_notify (object, NM_DEVICE_IP_TUNNEL_LOCAL); + _notify (self, PROP_LOCAL); } if (!address_equal_pn (AF_INET6, priv->remote, &remote6)) { g_clear_pointer (&priv->remote, g_free); if (memcmp (&remote6, &in6addr_any, sizeof (in6addr_any))) priv->remote = g_strdup (nm_utils_inet6_ntop (&remote6, NULL)); - g_object_notify (object, NM_DEVICE_IP_TUNNEL_REMOTE); + _notify (self, PROP_REMOTE); } } @@ -293,27 +300,27 @@ out: if (priv->ttl != ttl) { priv->ttl = ttl; - g_object_notify (object, NM_DEVICE_IP_TUNNEL_TTL); + _notify (self, PROP_TTL); } if (priv->tos != tos) { priv->tos = tos; - g_object_notify (object, NM_DEVICE_IP_TUNNEL_TOS); + _notify (self, PROP_TOS); } if (priv->path_mtu_discovery != pmtud) { priv->path_mtu_discovery = pmtud; - g_object_notify (object, NM_DEVICE_IP_TUNNEL_PATH_MTU_DISCOVERY); + _notify (self, PROP_PATH_MTU_DISCOVERY); } if (priv->encap_limit != encap_limit) { priv->encap_limit = encap_limit; - g_object_notify (object, NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT); + _notify (self, PROP_ENCAPSULATION_LIMIT); } if (priv->flow_label != flow_label) { priv->flow_label = flow_label; - g_object_notify (object, NM_DEVICE_IP_TUNNEL_FLOW_LABEL); + _notify (self, PROP_FLOW_LABEL); } } @@ -583,26 +590,7 @@ tunnel_mode_to_link_type (NMIPTunnelMode tunnel_mode) } } -/**************************************************************/ - -static void -nm_device_ip_tunnel_init (NMDeviceIPTunnel *self) -{ -} - -static void -constructed (GObject *object) -{ - NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE (object); - - if ( priv->mode == NM_IP_TUNNEL_MODE_IPIP6 - || priv->mode == NM_IP_TUNNEL_MODE_IP6IP6) - priv->addr_family = AF_INET6; - else - priv->addr_family = AF_INET; - - G_OBJECT_CLASS (nm_device_ip_tunnel_parent_class)->constructed (object); -} +/*****************************************************************************/ static gboolean create_and_realize (NMDevice *device, @@ -804,11 +792,13 @@ unrealize_notify (NMDevice *device) update_properties_from_ifindex (device, 0); } +/*****************************************************************************/ + static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE (object); + NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE ((NMDeviceIPTunnel *) object); NMDevice *parent; switch (prop_id) { @@ -854,9 +844,9 @@ get_property (GObject *object, guint prop_id, static void set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) + const GValue *value, GParamSpec *pspec) { - NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE (object); + NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE ((NMDeviceIPTunnel *) object); switch (prop_id) { case PROP_MODE: @@ -867,14 +857,33 @@ set_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + +static void +nm_device_ip_tunnel_init (NMDeviceIPTunnel *self) +{ +} + +static void +constructed (GObject *object) +{ + NMDeviceIPTunnelPrivate *priv = NM_DEVICE_IP_TUNNEL_GET_PRIVATE ((NMDeviceIPTunnel *) object); + + if ( priv->mode == NM_IP_TUNNEL_MODE_IPIP6 + || priv->mode == NM_IP_TUNNEL_MODE_IP6IP6) + priv->addr_family = AF_INET6; + else + priv->addr_family = AF_INET; + + G_OBJECT_CLASS (nm_device_ip_tunnel_parent_class)->constructed (object); +} + static void nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMDeviceIPTunnelPrivate)); - object_class->constructed = constructed; object_class->get_property = get_property; object_class->set_property = set_property; @@ -896,91 +905,81 @@ nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *klass) NM_LINK_TYPE_IPIP, NM_LINK_TYPE_SIT); - /* properties */ - g_object_class_install_property - (object_class, PROP_MODE, - g_param_spec_uint (NM_DEVICE_IP_TUNNEL_MODE, "", "", - 0, G_MAXUINT, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - /* properties */ - g_object_class_install_property - (object_class, PROP_PARENT, - g_param_spec_string (NM_DEVICE_IP_TUNNEL_PARENT, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_LOCAL, - g_param_spec_string (NM_DEVICE_IP_TUNNEL_LOCAL, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_REMOTE, - g_param_spec_string (NM_DEVICE_IP_TUNNEL_REMOTE, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_TTL, - g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TTL, "", "", - 0, 255, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_TOS, - g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TOS, "", "", - 0, 255, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_PATH_MTU_DISCOVERY, - g_param_spec_boolean (NM_DEVICE_IP_TUNNEL_PATH_MTU_DISCOVERY, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_INPUT_KEY, - g_param_spec_string (NM_DEVICE_IP_TUNNEL_INPUT_KEY, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_OUTPUT_KEY, - g_param_spec_string (NM_DEVICE_IP_TUNNEL_OUTPUT_KEY, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_ENCAPSULATION_LIMIT, - g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT, "", "", - 0, 255, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_FLOW_LABEL, - g_param_spec_uint (NM_DEVICE_IP_TUNNEL_FLOW_LABEL, "", "", - 0, (1 << 20) - 1, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MODE] = + g_param_spec_uint (NM_DEVICE_IP_TUNNEL_MODE, "", "", + 0, G_MAXUINT, 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_PARENT] = + g_param_spec_string (NM_DEVICE_IP_TUNNEL_PARENT, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_LOCAL] = + g_param_spec_string (NM_DEVICE_IP_TUNNEL_LOCAL, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_REMOTE] = + g_param_spec_string (NM_DEVICE_IP_TUNNEL_REMOTE, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_TTL] = + g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TTL, "", "", + 0, 255, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_TOS] = + g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TOS, "", "", + 0, 255, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_PATH_MTU_DISCOVERY] = + g_param_spec_boolean (NM_DEVICE_IP_TUNNEL_PATH_MTU_DISCOVERY, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_INPUT_KEY] = + g_param_spec_string (NM_DEVICE_IP_TUNNEL_INPUT_KEY, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_OUTPUT_KEY] = + g_param_spec_string (NM_DEVICE_IP_TUNNEL_OUTPUT_KEY, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_ENCAPSULATION_LIMIT] = + g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT, "", "", + 0, 255, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_FLOW_LABEL] = + g_param_spec_uint (NM_DEVICE_IP_TUNNEL_FLOW_LABEL, "", "", + 0, (1 << 20) - 1, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_IPTUNNEL_SKELETON, NULL); } -/*************************************************************/ + +/*****************************************************************************/ #define NM_TYPE_IP_TUNNEL_FACTORY (nm_ip_tunnel_factory_get_type ()) #define NM_IP_TUNNEL_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_IP_TUNNEL_FACTORY, NMIPTunnelFactory)) @@ -1057,4 +1056,4 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (IP_TUNNEL, IPTunnel, ip_tunnel, factory_iface->create_device = create_device; factory_iface->get_connection_parent = get_connection_parent; factory_iface->get_connection_iface = get_connection_iface; -) +); diff --git a/src/devices/nm-device-ip-tunnel.h b/src/devices/nm-device-ip-tunnel.h index 94cc737526..5027a27b07 100644 --- a/src/devices/nm-device-ip-tunnel.h +++ b/src/devices/nm-device-ip-tunnel.h @@ -43,13 +43,8 @@ #define NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT "encapsulation-limit" #define NM_DEVICE_IP_TUNNEL_FLOW_LABEL "flow-label" -typedef struct { - NMDevice parent; -} NMDeviceIPTunnel; - -typedef struct { - NMDeviceClass parent; -} NMDeviceIPTunnelClass; +typedef struct _NMDeviceIPTunnel NMDeviceIPTunnel; +typedef struct _NMDeviceIPTunnelClass NMDeviceIPTunnelClass; GType nm_device_ip_tunnel_get_type (void); diff --git a/src/devices/nm-device-macvlan.c b/src/devices/nm-device-macvlan.c index e9841a9d9c..6c01a9b6a6 100644 --- a/src/devices/nm-device-macvlan.c +++ b/src/devices/nm-device-macvlan.c @@ -26,7 +26,7 @@ #include "nm-device-private.h" #include "nm-settings.h" -#include "nm-activation-request.h" +#include "nm-act-request.h" #include "nm-manager.h" #include "nm-platform.h" #include "nm-device-factory.h" @@ -41,9 +41,14 @@ #include "nm-device-logging.h" _LOG_DECLARE_SELF(NMDeviceMacvlan); -G_DEFINE_TYPE (NMDeviceMacvlan, nm_device_macvlan, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_MACVLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_MACVLAN, NMDeviceMacvlanPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceMacvlan, + PROP_PARENT, + PROP_MODE, + PROP_NO_PROMISC, + PROP_TAP, +); typedef struct { int parent_ifindex; @@ -52,16 +57,21 @@ typedef struct { NMPlatformLnkMacvlan props; } NMDeviceMacvlanPrivate; -enum { - PROP_0, - PROP_PARENT, - PROP_MODE, - PROP_NO_PROMISC, - PROP_TAP, +struct _NMDeviceMacvlan { + NMDevice parent; + NMDeviceMacvlanPrivate _priv; +}; - LAST_PROP +struct _NMDeviceMacvlanClass { + NMDeviceClass parent; }; +G_DEFINE_TYPE (NMDeviceMacvlan, nm_device_macvlan, NM_TYPE_DEVICE) + +#define NM_DEVICE_MACVLAN_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceMacvlan, NM_IS_DEVICE_MACVLAN) + +/*****************************************************************************/ + static int modes[][2] = { { NM_SETTING_MACVLAN_MODE_VEPA, MACVLAN_MODE_VEPA }, { NM_SETTING_MACVLAN_MODE_BRIDGE, MACVLAN_MODE_BRIDGE }, @@ -112,7 +122,7 @@ platform_mode_to_string (guint mode) } } -/**************************************************************/ +/*****************************************************************************/ static void parent_state_changed (NMDevice *parent, @@ -158,17 +168,17 @@ nm_device_macvlan_set_parent (NMDeviceMacvlan *self, NMDevice *parent) } /* Recheck availability now that the parent has changed */ - nm_device_queue_recheck_available (self, + nm_device_queue_recheck_available (device, NM_DEVICE_STATE_REASON_PARENT_CHANGED, NM_DEVICE_STATE_REASON_PARENT_CHANGED); - g_object_notify (G_OBJECT (device), NM_DEVICE_MACVLAN_PARENT); + _notify (self, PROP_PARENT); } static void update_properties (NMDevice *device) { NMDeviceMacvlan *self = NM_DEVICE_MACVLAN (device); - NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (device); + NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (self); GObject *object = G_OBJECT (device); const NMPlatformLnkMacvlan *props; const NMPlatformLink *plink; @@ -191,9 +201,9 @@ update_properties (NMDevice *device) nm_device_macvlan_set_parent (self, parent); } if (priv->props.mode != props->mode) - g_object_notify (object, NM_DEVICE_MACVLAN_MODE); + _notify (self, PROP_MODE); if (priv->props.no_promisc != props->no_promisc) - g_object_notify (object, NM_DEVICE_MACVLAN_NO_PROMISC); + _notify (self, PROP_NO_PROMISC); priv->parent_ifindex = plink->parent; priv->props = *props; @@ -258,7 +268,7 @@ create_and_realize (NMDevice *device, return TRUE; } -/******************************************************************/ +/*****************************************************************************/ static NMDeviceCapabilities get_generic_capabilities (NMDevice *dev) @@ -267,12 +277,12 @@ get_generic_capabilities (NMDevice *dev) return NM_DEVICE_CAP_CARRIER_DETECT | NM_DEVICE_CAP_IS_SOFTWARE; } -/******************************************************************/ +/*****************************************************************************/ static gboolean is_available (NMDevice *device, NMDeviceCheckDevAvailableFlags flags) { - if (!NM_DEVICE_MACVLAN_GET_PRIVATE (device)->parent) + if (!NM_DEVICE_MACVLAN_GET_PRIVATE ((NMDeviceMacvlan *) device)->parent) return FALSE; return NM_DEVICE_CLASS (nm_device_macvlan_parent_class)->is_available (device, flags); @@ -300,7 +310,7 @@ notify_new_device_added (NMDevice *device, NMDevice *new_device) nm_device_macvlan_set_parent (self, new_device); } -/**************************************************************/ +/*****************************************************************************/ static gboolean @@ -343,7 +353,7 @@ match_parent (NMDeviceMacvlan *self, const char *parent) static gboolean match_hwaddr (NMDevice *device, NMConnection *connection, gboolean fail_if_no_hwaddr) { - NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (device); + NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE ((NMDeviceMacvlan *) device); NMSettingWired *s_wired; const char *setting_mac; const char *parent_mac; @@ -366,7 +376,7 @@ match_hwaddr (NMDevice *device, NMConnection *connection, gboolean fail_if_no_hw static gboolean check_connection_compatible (NMDevice *device, NMConnection *connection) { - NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (device); + NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE ((NMDeviceMacvlan *) device); NMSettingMacvlan *s_macvlan; const char *parent = NULL; @@ -445,7 +455,7 @@ complete_connection (NMDevice *device, static void update_connection (NMDevice *device, NMConnection *connection) { - NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (device); + NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE ((NMDeviceMacvlan *) device); NMSettingMacvlan *s_macvlan = nm_connection_get_setting_macvlan (connection); const char *setting_parent, *new_parent; int new_mode; @@ -527,18 +537,13 @@ realize_start_notify (NMDevice *device, const NMPlatformLink *plink) update_properties (device); } -/******************************************************************/ - -static void -nm_device_macvlan_init (NMDeviceMacvlan *self) -{ -} +/*****************************************************************************/ static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (object); + NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE ((NMDeviceMacvlan *) object); NMDevice *parent; switch (prop_id) { @@ -566,9 +571,9 @@ get_property (GObject *object, guint prop_id, static void set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) + const GValue *value, GParamSpec *pspec) { - NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (object); + NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE ((NMDeviceMacvlan *) object); switch (prop_id) { case PROP_TAP: @@ -579,6 +584,13 @@ set_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + +static void +nm_device_macvlan_init (NMDeviceMacvlan *self) +{ +} + static void dispose (GObject *object) { @@ -593,8 +605,6 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMDeviceMacvlanPrivate)); - NM_DEVICE_CLASS_DECLARE_TYPES (klass, NULL, NM_LINK_TYPE_MACVLAN, NM_LINK_TYPE_MACVTAP) object_class->dispose = dispose; @@ -614,42 +624,39 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *klass) device_class->realize_start_notify = realize_start_notify; device_class->update_connection = update_connection; - /* properties */ - g_object_class_install_property - (object_class, PROP_PARENT, - g_param_spec_string (NM_DEVICE_MACVLAN_PARENT, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_MODE, - g_param_spec_string (NM_DEVICE_MACVLAN_MODE, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_NO_PROMISC, - g_param_spec_boolean (NM_DEVICE_MACVLAN_NO_PROMISC, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_TAP, - g_param_spec_boolean (NM_DEVICE_MACVLAN_TAP, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PARENT] = + g_param_spec_string (NM_DEVICE_MACVLAN_PARENT, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_MODE] = + g_param_spec_string (NM_DEVICE_MACVLAN_MODE, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_NO_PROMISC] = + g_param_spec_boolean (NM_DEVICE_MACVLAN_NO_PROMISC, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_TAP] = + g_param_spec_boolean (NM_DEVICE_MACVLAN_TAP, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_MACVLAN_SKELETON, NULL); } -/*************************************************************/ +/*****************************************************************************/ #define NM_TYPE_MACVLAN_FACTORY (nm_macvlan_factory_get_type ()) #define NM_MACVLAN_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_MACVLAN_FACTORY, NMMacvlanFactory)) @@ -735,5 +742,4 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (MACVLAN, Macvlan, macvlan, factory_iface->create_device = create_device; factory_iface->get_connection_parent = get_connection_parent; factory_iface->get_connection_iface = get_connection_iface; - ) - +); diff --git a/src/devices/nm-device-macvlan.h b/src/devices/nm-device-macvlan.h index 5756f696fd..13dac7d792 100644 --- a/src/devices/nm-device-macvlan.h +++ b/src/devices/nm-device-macvlan.h @@ -35,8 +35,8 @@ #define NM_DEVICE_MACVLAN_NO_PROMISC "no-promisc" #define NM_DEVICE_MACVLAN_TAP "tap" -typedef NMDevice NMDeviceMacvlan; -typedef NMDeviceClass NMDeviceMacvlanClass; +typedef struct _NMDeviceMacvlan NMDeviceMacvlan; +typedef struct _NMDeviceMacvlanClass NMDeviceMacvlanClass; GType nm_device_macvlan_get_type (void); diff --git a/src/devices/nm-device-tun.c b/src/devices/nm-device-tun.c index 1f42d06015..1870b5fdf4 100644 --- a/src/devices/nm-device-tun.c +++ b/src/devices/nm-device-tun.c @@ -20,12 +20,13 @@ #include "nm-default.h" +#include "nm-device-tun.h" + #include <stdlib.h> #include <string.h> #include <sys/types.h> -#include "nm-activation-request.h" -#include "nm-device-tun.h" +#include "nm-act-request.h" #include "nm-device-private.h" #include "nm-ip4-config.h" #include "nm-platform.h" @@ -38,27 +39,37 @@ #include "nm-device-logging.h" _LOG_DECLARE_SELF(NMDeviceTun); -G_DEFINE_TYPE (NMDeviceTun, nm_device_tun, NM_TYPE_DEVICE) - -#define NM_DEVICE_TUN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_TUN, NMDeviceTunPrivate)) - -typedef struct { - NMPlatformTunProperties props; - const char *mode; -} NMDeviceTunPrivate; +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceTun, PROP_OWNER, PROP_GROUP, PROP_MODE, PROP_NO_PI, PROP_VNET_HDR, PROP_MULTI_QUEUE, +); - LAST_PROP +typedef struct { + NMPlatformTunProperties props; + const char *mode; +} NMDeviceTunPrivate; + +struct _NMDeviceTun { + NMDevice parent; + NMDeviceTunPrivate _priv; }; +struct _NMDeviceTunClass { + NMDeviceClass parent; +}; + +G_DEFINE_TYPE (NMDeviceTun, nm_device_tun, NM_TYPE_DEVICE) + +#define NM_DEVICE_TUN_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceTun, NM_IS_DEVICE_TUN) + +/*****************************************************************************/ + static void reload_tun_properties (NMDeviceTun *self) { @@ -89,15 +100,15 @@ reload_tun_properties (NMDeviceTun *self) g_object_freeze_notify (object); if (priv->props.owner != props.owner) - g_object_notify (object, NM_DEVICE_TUN_OWNER); + _notify (self, PROP_OWNER); if (priv->props.group != props.group) - g_object_notify (object, NM_DEVICE_TUN_GROUP); + _notify (self, PROP_GROUP); if (priv->props.no_pi != props.no_pi) - g_object_notify (object, NM_DEVICE_TUN_NO_PI); + _notify (self, PROP_NO_PI); if (priv->props.vnet_hdr != props.vnet_hdr) - g_object_notify (object, NM_DEVICE_TUN_VNET_HDR); + _notify (self, PROP_VNET_HDR); if (priv->props.multi_queue != props.multi_queue) - g_object_notify (object, NM_DEVICE_TUN_MULTI_QUEUE); + _notify (self, PROP_MULTI_QUEUE); memcpy (&priv->props, &props, sizeof (NMPlatformTunProperties)); @@ -244,7 +255,7 @@ static void realize_start_notify (NMDevice *device, const NMPlatformLink *plink) { NM_DEVICE_CLASS (nm_device_tun_parent_class)->realize_start_notify (device, plink); - reload_tun_properties (device); + reload_tun_properties ((NMDeviceTun *) device); } static gboolean @@ -332,25 +343,17 @@ unrealize_notify (NMDevice *device) { NMDeviceTun *self = NM_DEVICE_TUN (device); NMDeviceTunPrivate *priv = NM_DEVICE_TUN_GET_PRIVATE (self); - GParamSpec **properties; - guint n_properties, i; + guint i; NM_DEVICE_CLASS (nm_device_tun_parent_class)->unrealize_notify (device); memset (&priv->props, 0, sizeof (NMPlatformTunProperties)); - properties = g_object_class_list_properties (G_OBJECT_GET_CLASS (self), &n_properties); - for (i = 0; i < n_properties; i++) - g_object_notify_by_pspec (G_OBJECT (self), properties[i]); - g_free (properties); + for (i = 1; i < _PROPERTY_ENUMS_LAST; i++) + g_object_notify_by_pspec ((GObject *) self, obj_properties[i]); } -/**************************************************************/ - -static void -nm_device_tun_init (NMDeviceTun *self) -{ -} +/*****************************************************************************/ static void get_property (GObject *object, guint prop_id, @@ -411,21 +414,25 @@ set_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + +static void +nm_device_tun_init (NMDeviceTun *self) +{ +} + static void nm_device_tun_class_init (NMDeviceTunClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMDeviceTunPrivate)); - NM_DEVICE_CLASS_DECLARE_TYPES (klass, NULL, NM_LINK_TYPE_TUN, NM_LINK_TYPE_TAP) object_class->get_property = get_property; object_class->set_property = set_property; device_class->connection_type = NM_SETTING_TUN_SETTING_NAME; - device_class->link_changed = link_changed; device_class->complete_connection = complete_connection; device_class->check_connection_compatible = check_connection_compatible; @@ -437,42 +444,38 @@ nm_device_tun_class_init (NMDeviceTunClass *klass) device_class->act_stage1_prepare = act_stage1_prepare; device_class->ip4_config_pre_commit = ip4_config_pre_commit; - /* properties */ - g_object_class_install_property - (object_class, PROP_OWNER, - g_param_spec_int64 (NM_DEVICE_TUN_OWNER, "", "", - -1, G_MAXUINT32, -1, - G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_GROUP, - g_param_spec_int64 (NM_DEVICE_TUN_GROUP, "", "", - -1, G_MAXUINT32, -1, - G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_MODE, - g_param_spec_string (NM_DEVICE_TUN_MODE, "", "", - "tun", - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_NO_PI, - g_param_spec_boolean (NM_DEVICE_TUN_NO_PI, "", "", - FALSE, - G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_VNET_HDR, - g_param_spec_boolean (NM_DEVICE_TUN_VNET_HDR, "", "", - FALSE, - G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_MULTI_QUEUE, - g_param_spec_boolean (NM_DEVICE_TUN_MULTI_QUEUE, "", "", - FALSE, - G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_OWNER] = + g_param_spec_int64 (NM_DEVICE_TUN_OWNER, "", "", + -1, G_MAXUINT32, -1, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_GROUP] = + g_param_spec_int64 (NM_DEVICE_TUN_GROUP, "", "", + -1, G_MAXUINT32, -1, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_MODE] = + g_param_spec_string (NM_DEVICE_TUN_MODE, "", "", + "tun", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_NO_PI] = + g_param_spec_boolean (NM_DEVICE_TUN_NO_PI, "", "", + FALSE, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_VNET_HDR] = + g_param_spec_boolean (NM_DEVICE_TUN_VNET_HDR, "", "", + FALSE, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_MULTI_QUEUE] = + g_param_spec_boolean (NM_DEVICE_TUN_MULTI_QUEUE, "", "", + FALSE, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_TUN_SKELETON, @@ -480,7 +483,7 @@ nm_device_tun_class_init (NMDeviceTunClass *klass) } -/*************************************************************/ +/*****************************************************************************/ #define NM_TYPE_TUN_FACTORY (nm_tun_factory_get_type ()) #define NM_TUN_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_TUN_FACTORY, NMTunFactory)) @@ -530,5 +533,5 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (TUN, Tun, tun, NM_DEVICE_FACTORY_DECLARE_LINK_TYPES (NM_LINK_TYPE_TUN, NM_LINK_TYPE_TAP) NM_DEVICE_FACTORY_DECLARE_SETTING_TYPES (NM_SETTING_TUN_SETTING_NAME), factory_iface->create_device = create_device; - ) +); diff --git a/src/devices/nm-device-tun.h b/src/devices/nm-device-tun.h index d62b0c373e..b0d309bb06 100644 --- a/src/devices/nm-device-tun.h +++ b/src/devices/nm-device-tun.h @@ -37,8 +37,8 @@ #define NM_DEVICE_TUN_VNET_HDR "vnet-hdr" #define NM_DEVICE_TUN_MULTI_QUEUE "multi-queue" -typedef NMDevice NMDeviceTun; -typedef NMDeviceClass NMDeviceTunClass; +typedef struct _NMDeviceTun NMDeviceTun; +typedef struct _NMDeviceTunClass NMDeviceTunClass; GType nm_device_tun_get_type (void); diff --git a/src/devices/nm-device-veth.c b/src/devices/nm-device-veth.c index 56923315c6..33078d786c 100644 --- a/src/devices/nm-device-veth.c +++ b/src/devices/nm-device-veth.c @@ -51,7 +51,7 @@ struct _NMDeviceVeth { }; struct _NMDeviceVethClass { - NMDeviceEthernetClass parent_class; + NMDeviceEthernetClass parent; }; NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceVeth, @@ -115,7 +115,7 @@ can_unmanaged_external_down (NMDevice *self) return FALSE; } -/**************************************************************/ +/*****************************************************************************/ static void nm_device_veth_init (NMDeviceVeth *self) @@ -180,7 +180,7 @@ nm_device_veth_class_init (NMDeviceVethClass *klass) NULL); } -/*************************************************************/ +/*****************************************************************************/ #define NM_TYPE_VETH_FACTORY (nm_veth_factory_get_type ()) #define NM_VETH_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_VETH_FACTORY, NMVethFactory)) diff --git a/src/devices/nm-device-vlan.c b/src/devices/nm-device-vlan.c index ad9d2486a8..1c2f6dd70a 100644 --- a/src/devices/nm-device-vlan.c +++ b/src/devices/nm-device-vlan.c @@ -30,7 +30,7 @@ #include "nm-device-private.h" #include "nm-enum-types.h" #include "nm-settings.h" -#include "nm-activation-request.h" +#include "nm-act-request.h" #include "nm-ip4-config.h" #include "nm-platform.h" #include "nm-device-factory.h" @@ -43,9 +43,12 @@ #include "nm-device-logging.h" _LOG_DECLARE_SELF(NMDeviceVlan); -G_DEFINE_TYPE (NMDeviceVlan, nm_device_vlan, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_VLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_VLAN, NMDeviceVlanPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceVlan, + PROP_PARENT, + PROP_VLAN_ID, +); typedef struct { NMDevice *parent; @@ -54,15 +57,20 @@ typedef struct { guint vlan_id; } NMDeviceVlanPrivate; -enum { - PROP_0, - PROP_PARENT, - PROP_VLAN_ID, +struct _NMDeviceVlan { + NMDevice parent; + NMDeviceVlanPrivate _priv; +}; - LAST_PROP +struct _NMDeviceVlanClass { + NMDeviceClass parent; }; -/******************************************************************/ +G_DEFINE_TYPE (NMDeviceVlan, nm_device_vlan, NM_TYPE_DEVICE) + +#define NM_DEVICE_VLAN_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceVlan, NM_IS_DEVICE_VLAN) + +/*****************************************************************************/ static void parent_state_changed (NMDevice *parent, @@ -91,18 +99,18 @@ parent_hwaddr_maybe_changed (NMDevice *parent, NMSettingIPConfig *s_ip6; /* Never touch assumed devices */ - if (nm_device_uses_assumed_connection (self)) + if (nm_device_uses_assumed_connection ((NMDevice *) self)) return; - connection = nm_device_get_applied_connection (self); + connection = nm_device_get_applied_connection ((NMDevice *) self); if (!connection) return; /* Update the VLAN MAC only if configuration does not specify one */ - if (nm_device_hw_addr_is_explict (self)) + if (nm_device_hw_addr_is_explict ((NMDevice *) self)) return; - old_mac = nm_device_get_hw_address (self); + old_mac = nm_device_get_hw_address ((NMDevice *) self); new_mac = nm_device_get_hw_address (parent); if (nm_streq0 (old_mac, new_mac)) return; @@ -110,7 +118,7 @@ parent_hwaddr_maybe_changed (NMDevice *parent, _LOGD (LOGD_VLAN, "parent hardware address changed to %s%s%s", NM_PRINT_FMT_QUOTE_STRING (new_mac)); if (new_mac) { - nm_device_hw_addr_set (self, new_mac, "vlan-parent"); + nm_device_hw_addr_set ((NMDevice *) self, new_mac, "vlan-parent"); /* When changing the hw address the interface is taken down, * removing the IPv6 configuration; reapply it. */ @@ -152,10 +160,10 @@ nm_device_vlan_set_parent (NMDeviceVlan *self, NMDevice *parent) } /* Recheck availability now that the parent has changed */ - nm_device_queue_recheck_available (self, + nm_device_queue_recheck_available (device, NM_DEVICE_STATE_REASON_PARENT_CHANGED, NM_DEVICE_STATE_REASON_PARENT_CHANGED); - g_object_notify (G_OBJECT (device), NM_DEVICE_VLAN_PARENT); + _notify (self, PROP_PARENT); } static void @@ -170,7 +178,7 @@ update_properties (NMDevice *device) g_return_if_fail (NM_IS_DEVICE_VLAN (device)); - priv = NM_DEVICE_VLAN_GET_PRIVATE (device); + priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device); ifindex = nm_device_get_ifindex (device); @@ -188,7 +196,7 @@ update_properties (NMDevice *device) vlan_id = plnk ? plnk->id : 0; if (vlan_id != priv->vlan_id) { priv->vlan_id = vlan_id; - g_object_notify ((GObject *) device, NM_DEVICE_VLAN_ID); + _notify ((NMDeviceVlan *) device, PROP_VLAN_ID); } g_object_thaw_notify ((GObject *) device); @@ -209,7 +217,7 @@ create_and_realize (NMDevice *device, const NMPlatformLink **out_plink, GError **error) { - NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (device); + NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device); const char *iface = nm_device_get_iface (device); NMSettingVlan *s_vlan; int parent_ifindex; @@ -257,7 +265,7 @@ create_and_realize (NMDevice *device, nm_device_vlan_set_parent (NM_DEVICE_VLAN (device), parent); if (vlan_id != priv->vlan_id) { priv->vlan_id = vlan_id; - g_object_notify ((GObject *) device, NM_DEVICE_VLAN_ID); + _notify ((NMDeviceVlan *) device, PROP_VLAN_ID); } return TRUE; @@ -268,12 +276,12 @@ unrealize_notify (NMDevice *device) { NM_DEVICE_CLASS (nm_device_vlan_parent_class)->unrealize_notify (device); - NM_DEVICE_VLAN_GET_PRIVATE (device)->vlan_id = 0; - g_object_notify (G_OBJECT (device), NM_DEVICE_VLAN_ID); + NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device)->vlan_id = 0; + _notify ((NMDeviceVlan *) device, PROP_VLAN_ID); nm_device_vlan_set_parent (NM_DEVICE_VLAN (device), NULL); } -/******************************************************************/ +/*****************************************************************************/ static NMDeviceCapabilities get_generic_capabilities (NMDevice *dev) @@ -282,12 +290,12 @@ get_generic_capabilities (NMDevice *dev) return NM_DEVICE_CAP_CARRIER_DETECT | NM_DEVICE_CAP_IS_SOFTWARE; } -/******************************************************************/ +/*****************************************************************************/ static gboolean is_available (NMDevice *device, NMDeviceCheckDevAvailableFlags flags) { - if (!NM_DEVICE_VLAN_GET_PRIVATE (device)->parent) + if (!NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device)->parent) return FALSE; return NM_DEVICE_CLASS (nm_device_vlan_parent_class)->is_available (device, flags); @@ -318,7 +326,7 @@ notify_new_device_added (NMDevice *device, NMDevice *new_device) nm_device_vlan_set_parent (self, new_device); } -/******************************************************************/ +/*****************************************************************************/ static gboolean match_parent (NMDeviceVlan *self, const char *parent) @@ -373,7 +381,7 @@ match_hwaddr (NMDevice *device, NMConnection *connection, gboolean fail_if_no_hw if (!setting_mac) return !fail_if_no_hwaddr; - priv = NM_DEVICE_VLAN_GET_PRIVATE (device); + priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device); if (!priv->parent) return !fail_if_no_hwaddr; @@ -384,7 +392,7 @@ match_hwaddr (NMDevice *device, NMConnection *connection, gboolean fail_if_no_hw static gboolean check_connection_compatible (NMDevice *device, NMConnection *connection) { - NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (device); + NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device); NMSettingVlan *s_vlan; const char *parent = NULL; @@ -468,7 +476,7 @@ complete_connection (NMDevice *device, static void update_connection (NMDevice *device, NMConnection *connection) { - NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (device); + NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) device); NMSettingVlan *s_vlan = nm_connection_get_setting_vlan (connection); int ifindex = nm_device_get_ifindex (device); const char *setting_parent, *new_parent; @@ -534,7 +542,7 @@ update_connection (NMDevice *device, NMConnection *connection) static NMActStageReturn act_stage1_prepare (NMDevice *dev, NMDeviceStateReason *reason) { - NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (dev); + NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) dev); NMSettingVlan *s_vlan; NMActStageReturn ret; @@ -599,18 +607,13 @@ ip4_config_pre_commit (NMDevice *device, NMIP4Config *config) } } -/******************************************************************/ - -static void -nm_device_vlan_init (NMDeviceVlan * self) -{ -} +/*****************************************************************************/ static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE (object); + NMDeviceVlanPrivate *priv = NM_DEVICE_VLAN_GET_PRIVATE ((NMDeviceVlan *) object); switch (prop_id) { case PROP_PARENT: @@ -625,11 +628,11 @@ get_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) +nm_device_vlan_init (NMDeviceVlan * self) { - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } static void @@ -648,11 +651,7 @@ nm_device_vlan_class_init (NMDeviceVlanClass *klass) NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_VLAN_SETTING_NAME, NM_LINK_TYPE_VLAN) - g_type_class_add_private (object_class, sizeof (NMDeviceVlanPrivate)); - - /* virtual methods */ object_class->get_property = get_property; - object_class->set_property = set_property; object_class->dispose = dispose; parent_class->create_and_realize = create_and_realize; @@ -669,25 +668,25 @@ nm_device_vlan_class_init (NMDeviceVlanClass *klass) parent_class->complete_connection = complete_connection; parent_class->update_connection = update_connection; - /* properties */ - g_object_class_install_property - (object_class, PROP_PARENT, - g_param_spec_string (NM_DEVICE_VLAN_PARENT, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_VLAN_ID, - g_param_spec_uint (NM_DEVICE_VLAN_ID, "", "", - 0, 4095, 0, - G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PARENT] = + g_param_spec_string (NM_DEVICE_VLAN_PARENT, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + obj_properties[PROP_VLAN_ID] = + g_param_spec_uint (NM_DEVICE_VLAN_ID, "", "", + 0, 4095, 0, + G_PARAM_READABLE + | G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_VLAN_SKELETON, NULL); } -/*************************************************************/ +/*****************************************************************************/ #define NM_TYPE_VLAN_FACTORY (nm_vlan_factory_get_type ()) #define NM_VLAN_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_VLAN_FACTORY, NMVlanFactory)) @@ -765,5 +764,4 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (VLAN, Vlan, vlan, factory_iface->create_device = create_device; factory_iface->get_connection_parent = get_connection_parent; factory_iface->get_connection_iface = get_connection_iface; - ) - +); diff --git a/src/devices/nm-device-vlan.h b/src/devices/nm-device-vlan.h index 71ca80307a..f587f4f60b 100644 --- a/src/devices/nm-device-vlan.h +++ b/src/devices/nm-device-vlan.h @@ -40,8 +40,8 @@ typedef enum { #define NM_DEVICE_VLAN_PARENT "parent" #define NM_DEVICE_VLAN_ID "vlan-id" -typedef NMDevice NMDeviceVlan; -typedef NMDeviceClass NMDeviceVlanClass; +typedef struct _NMDeviceVlan NMDeviceVlan; +typedef struct _NMDeviceVlanClass NMDeviceVlanClass; GType nm_device_vlan_get_type (void); diff --git a/src/devices/nm-device-vxlan.c b/src/devices/nm-device-vxlan.c index 674c2a787d..583cb6677b 100644 --- a/src/devices/nm-device-vxlan.c +++ b/src/devices/nm-device-vxlan.c @@ -32,7 +32,7 @@ #include "nm-setting-vxlan.h" #include "nm-setting-wired.h" #include "nm-settings.h" -#include "nm-activation-request.h" +#include "nm-act-request.h" #include "nm-ip4-config.h" #include "nmdbus-device-vxlan.h" @@ -40,17 +40,9 @@ #include "nm-device-logging.h" _LOG_DECLARE_SELF(NMDeviceVxlan); -G_DEFINE_TYPE (NMDeviceVxlan, nm_device_vxlan, NM_TYPE_DEVICE) - -#define NM_DEVICE_VXLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_VXLAN, NMDeviceVxlanPrivate)) - -typedef struct { - NMDevice *parent; - NMPlatformLnkVxlan props; -} NMDeviceVxlanPrivate; +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceVxlan, PROP_PARENT, PROP_ID, PROP_LOCAL, @@ -67,17 +59,33 @@ enum { PROP_RSC, PROP_L2MISS, PROP_L3MISS, +); - LAST_PROP +typedef struct { + NMDevice *parent; + NMPlatformLnkVxlan props; +} NMDeviceVxlanPrivate; + +struct _NMDeviceVxlan { + NMDevice parent; + NMDeviceVxlanPrivate _priv; }; -/**************************************************************/ +struct _NMDeviceVxlanClass { + NMDeviceClass parent; +}; + +G_DEFINE_TYPE (NMDeviceVxlan, nm_device_vxlan, NM_TYPE_DEVICE) + +#define NM_DEVICE_VXLAN_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceVxlan, NM_IS_DEVICE_VXLAN) + +/*****************************************************************************/ static void update_properties (NMDevice *device) { NMDeviceVxlan *self = NM_DEVICE_VXLAN (device); - NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (device); + NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (self); GObject *object = G_OBJECT (device); const NMPlatformLnkVxlan *props; NMDevice *parent; @@ -95,42 +103,42 @@ update_properties (NMDevice *device) parent = nm_manager_get_device_by_ifindex (nm_manager_get (), props->parent_ifindex); if (parent) priv->parent = g_object_ref (parent); - g_object_notify (object, NM_DEVICE_VXLAN_PARENT); + _notify (self, PROP_PARENT); } if (priv->props.id != props->id) - g_object_notify (object, NM_DEVICE_VXLAN_ID); + _notify (self, PROP_ID); if (priv->props.local != props->local) - g_object_notify (object, NM_DEVICE_VXLAN_LOCAL); + _notify (self, PROP_LOCAL); if (memcmp (&priv->props.local6, &props->local6, sizeof (props->local6)) != 0) - g_object_notify (object, NM_DEVICE_VXLAN_LOCAL); + _notify (self, PROP_LOCAL); if (priv->props.group != props->group) - g_object_notify (object, NM_DEVICE_VXLAN_GROUP); + _notify (self, PROP_GROUP); if (memcmp (&priv->props.group6, &props->group6, sizeof (props->group6)) != 0) - g_object_notify (object, NM_DEVICE_VXLAN_GROUP); + _notify (self, PROP_GROUP); if (priv->props.tos != props->tos) - g_object_notify (object, NM_DEVICE_VXLAN_TOS); + _notify (self, PROP_TOS); if (priv->props.ttl != props->ttl) - g_object_notify (object, NM_DEVICE_VXLAN_TTL); + _notify (self, PROP_TTL); if (priv->props.learning != props->learning) - g_object_notify (object, NM_DEVICE_VXLAN_LEARNING); + _notify (self, PROP_LEARNING); if (priv->props.ageing != props->ageing) - g_object_notify (object, NM_DEVICE_VXLAN_AGEING); + _notify (self, PROP_AGEING); if (priv->props.limit != props->limit) - g_object_notify (object, NM_DEVICE_VXLAN_LIMIT); + _notify (self, PROP_LIMIT); if (priv->props.src_port_min != props->src_port_min) - g_object_notify (object, NM_DEVICE_VXLAN_SRC_PORT_MIN); + _notify (self, PROP_SRC_PORT_MIN); if (priv->props.src_port_max != props->src_port_max) - g_object_notify (object, NM_DEVICE_VXLAN_SRC_PORT_MAX); + _notify (self, PROP_SRC_PORT_MAX); if (priv->props.dst_port != props->dst_port) - g_object_notify (object, NM_DEVICE_VXLAN_DST_PORT); + _notify (self, PROP_DST_PORT); if (priv->props.proxy != props->proxy) - g_object_notify (object, NM_DEVICE_VXLAN_PROXY); + _notify (self, PROP_PROXY); if (priv->props.rsc != props->rsc) - g_object_notify (object, NM_DEVICE_VXLAN_RSC); + _notify (self, PROP_RSC); if (priv->props.l2miss != props->l2miss) - g_object_notify (object, NM_DEVICE_VXLAN_L2MISS); + _notify (self, PROP_L2MISS); if (priv->props.l3miss != props->l3miss) - g_object_notify (object, NM_DEVICE_VXLAN_L3MISS); + _notify (self, PROP_L3MISS); priv->props = *props; @@ -165,17 +173,14 @@ unrealize_notify (NMDevice *device) { NMDeviceVxlan *self = NM_DEVICE_VXLAN (device); NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (self); - GParamSpec **properties; - guint n_properties, i; + guint i; NM_DEVICE_CLASS (nm_device_vxlan_parent_class)->unrealize_notify (device); memset (&priv->props, 0, sizeof (NMPlatformLnkVxlan)); - properties = g_object_class_list_properties (G_OBJECT_GET_CLASS (self), &n_properties); - for (i = 0; i < n_properties; i++) - g_object_notify_by_pspec (G_OBJECT (self), properties[i]); - g_free (properties); + for (i = 1; i < _PROPERTY_ENUMS_LAST; i++) + g_object_notify_by_pspec (G_OBJECT (self), obj_properties[i]); } static gboolean @@ -300,7 +305,7 @@ address_matches (const char *str, in_addr_t addr4, struct in6_addr *addr6) static gboolean check_connection_compatible (NMDevice *device, NMConnection *connection) { - NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (device); + NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE ((NMDeviceVxlan *) device); NMSettingVxlan *s_vxlan; const char *parent; @@ -394,7 +399,7 @@ complete_connection (NMDevice *device, static void update_connection (NMDevice *device, NMConnection *connection) { - NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (device); + NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE ((NMDeviceVxlan *) device); NMSettingVxlan *s_vxlan = nm_connection_get_setting_vxlan (connection); NMDevice *parent = NULL; const char *setting_parent, *new_parent; @@ -543,18 +548,13 @@ ip4_config_pre_commit (NMDevice *device, NMIP4Config *config) } } -/**************************************************************/ - -static void -nm_device_vxlan_init (NMDeviceVxlan *self) -{ -} +/*****************************************************************************/ static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (object); + NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE ((NMDeviceVxlan *) object); NMDevice *parent; switch (prop_id) { @@ -619,10 +619,17 @@ get_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + +static void +nm_device_vxlan_init (NMDeviceVxlan *self) +{ +} + static void dispose (GObject *object) { - NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (object); + NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE ((NMDeviceVxlan *) object); g_clear_object (&priv->parent); G_OBJECT_CLASS (nm_device_vxlan_parent_class)->dispose (object); @@ -634,8 +641,6 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMDeviceVxlanPrivate)); - NM_DEVICE_CLASS_DECLARE_TYPES (klass, NULL, NM_LINK_TYPE_VXLAN) object_class->get_property = get_property; @@ -653,125 +658,110 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *klass) device_class->act_stage1_prepare = act_stage1_prepare; device_class->ip4_config_pre_commit = ip4_config_pre_commit; - /* properties */ - g_object_class_install_property - (object_class, PROP_PARENT, - g_param_spec_string (NM_DEVICE_VXLAN_PARENT, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_ID, - g_param_spec_uint (NM_DEVICE_VXLAN_ID, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_LOCAL, - g_param_spec_string (NM_DEVICE_VXLAN_LOCAL, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_GROUP, - g_param_spec_string (NM_DEVICE_VXLAN_GROUP, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_TOS, - g_param_spec_uchar (NM_DEVICE_VXLAN_TOS, "", "", - 0, 255, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_TTL, - g_param_spec_uchar (NM_DEVICE_VXLAN_TTL, "", "", - 0, 255, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_LEARNING, - g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_AGEING, - g_param_spec_uint (NM_DEVICE_VXLAN_AGEING, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_LIMIT, - g_param_spec_uint (NM_DEVICE_VXLAN_LIMIT, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_SRC_PORT_MIN, - g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MIN, "", "", - 0, 65535, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_SRC_PORT_MAX, - g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MAX, "", "", - 0, 65535, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_DST_PORT, - g_param_spec_uint (NM_DEVICE_VXLAN_DST_PORT, "", "", - 0, 65535, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_PROXY, - g_param_spec_boolean (NM_DEVICE_VXLAN_PROXY, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_RSC, - g_param_spec_boolean (NM_DEVICE_VXLAN_RSC, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_L2MISS, - g_param_spec_boolean (NM_DEVICE_VXLAN_L2MISS, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_L3MISS, - g_param_spec_boolean (NM_DEVICE_VXLAN_L3MISS, "", "", - FALSE, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PARENT] = + g_param_spec_string (NM_DEVICE_VXLAN_PARENT, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_ID] = + g_param_spec_uint (NM_DEVICE_VXLAN_ID, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_LOCAL] = + g_param_spec_string (NM_DEVICE_VXLAN_LOCAL, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_GROUP] = + g_param_spec_string (NM_DEVICE_VXLAN_GROUP, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_TOS] = + g_param_spec_uchar (NM_DEVICE_VXLAN_TOS, "", "", + 0, 255, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_TTL] = + g_param_spec_uchar (NM_DEVICE_VXLAN_TTL, "", "", + 0, 255, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_LEARNING] = + g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_AGEING] = + g_param_spec_uint (NM_DEVICE_VXLAN_AGEING, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_LIMIT] = + g_param_spec_uint (NM_DEVICE_VXLAN_LIMIT, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_SRC_PORT_MIN] = + g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MIN, "", "", + 0, 65535, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_SRC_PORT_MAX] = + g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MAX, "", "", + 0, 65535, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_DST_PORT] = + g_param_spec_uint (NM_DEVICE_VXLAN_DST_PORT, "", "", + 0, 65535, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_PROXY] = + g_param_spec_boolean (NM_DEVICE_VXLAN_PROXY, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_RSC] = + g_param_spec_boolean (NM_DEVICE_VXLAN_RSC, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_L2MISS] = + g_param_spec_boolean (NM_DEVICE_VXLAN_L2MISS, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_L3MISS] = + g_param_spec_boolean (NM_DEVICE_VXLAN_L3MISS, "", "", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_VXLAN_SKELETON, NULL); } -/*************************************************************/ +/*****************************************************************************/ #define NM_TYPE_VXLAN_FACTORY (nm_vxlan_factory_get_type ()) #define NM_VXLAN_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_VXLAN_FACTORY, NMVxlanFactory)) @@ -830,5 +820,5 @@ NM_DEVICE_FACTORY_DEFINE_INTERNAL (VXLAN, Vxlan, vxlan, factory_iface->create_device = create_device; factory_iface->get_connection_parent = get_connection_parent; factory_iface->get_connection_iface = get_connection_iface; - ) +); diff --git a/src/devices/nm-device-vxlan.h b/src/devices/nm-device-vxlan.h index 71204d3beb..82e5c604e9 100644 --- a/src/devices/nm-device-vxlan.h +++ b/src/devices/nm-device-vxlan.h @@ -47,8 +47,8 @@ #define NM_DEVICE_VXLAN_L2MISS "l2miss" #define NM_DEVICE_VXLAN_L3MISS "l3miss" -typedef NMDevice NMDeviceVxlan; -typedef NMDeviceClass NMDeviceVxlanClass; +typedef struct _NMDeviceVxlan NMDeviceVxlan; +typedef struct _NMDeviceVxlanClass NMDeviceVxlanClass; GType nm_device_vxlan_get_type (void); diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index c41d8e4eba..e2cd28f911 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -44,7 +44,7 @@ #include "nm-rdisc.h" #include "nm-lndp-rdisc.h" #include "nm-dhcp-manager.h" -#include "nm-activation-request.h" +#include "nm-act-request.h" #include "nm-ip4-config.h" #include "nm-ip6-config.h" #include "nm-dnsmasq-manager.h" @@ -135,7 +135,7 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMDevice, #define DEFAULT_AUTOCONNECT TRUE -/***********************************************************/ +/*****************************************************************************/ #define PENDING_ACTION_DHCP4 "dhcp4" #define PENDING_ACTION_DHCP6 "dhcp6" @@ -465,7 +465,7 @@ static void nm_device_set_mtu (NMDevice *self, guint32 mtu); static void dhcp_schedule_restart (NMDevice *self, int family, const char *reason); static void _cancel_activation (NMDevice *self); -/***********************************************************/ +/*****************************************************************************/ #define QUEUED_PREFIX "queued state change to " @@ -569,7 +569,7 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_reason_to_string, NMDeviceStateReason, #define reason_to_string(reason) \ NM_UTILS_LOOKUP_STR (_reason_to_string, reason) -/***********************************************************/ +/*****************************************************************************/ NMSettings * nm_device_get_settings (NMDevice *self) @@ -603,7 +603,7 @@ init_ip6_config_dns_priority (NMDevice *self, NMIP6Config *config) nm_ip6_config_set_dns_priority (config, priority ?: NM_DNS_PRIORITY_DEFAULT_NORMAL); } -/***********************************************************/ +/*****************************************************************************/ gboolean nm_device_ipv6_sysctl_set (NMDevice *self, const char *property, const char *value) @@ -634,7 +634,7 @@ _add_capabilities (NMDevice *self, NMDeviceCapabilities capabilities) } } -/***********************************************************/ +/*****************************************************************************/ static const char * _get_stable_id (NMConnection *connection, NMUtilsStableType *out_stable_type) @@ -658,7 +658,7 @@ _get_stable_id (NMConnection *connection, NMUtilsStableType *out_stable_type) return stable_id; } -/***********************************************************/ +/*****************************************************************************/ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_ip_state_to_string, IpState, NM_UTILS_LOOKUP_DEFAULT_WARN ("unknown"), @@ -1320,7 +1320,7 @@ nm_device_get_physical_port_id (NMDevice *self) return NM_DEVICE_GET_PRIVATE (self)->physical_port_id; } -/***********************************************************/ +/*****************************************************************************/ static gboolean nm_device_uses_generated_assumed_connection (NMDevice *self) @@ -4245,7 +4245,7 @@ nm_device_ip_method_failed (NMDevice *self, int family, NMDeviceStateReason reas nm_device_state_changed (self, NM_DEVICE_STATE_FAILED, reason); } -/*********************************************/ +/*****************************************************************************/ /* IPv4 DAD stuff */ static guint @@ -4429,7 +4429,7 @@ ipv4_dad_start (NMDevice *self, NMIP4Config **configs, ArpingCallback cb) } } -/*********************************************/ +/*****************************************************************************/ /* IPv4LL stuff */ static void @@ -4620,7 +4620,7 @@ fail: return NM_ACT_STAGE_RETURN_FAILURE; } -/*********************************************/ +/*****************************************************************************/ static gboolean _device_get_default_route_from_platform (NMDevice *self, int addr_family, NMPlatformIPRoute *out_route) @@ -4666,7 +4666,7 @@ _device_get_default_route_from_platform (NMDevice *self, int addr_family, NMPlat return success; } -/*********************************************/ +/*****************************************************************************/ static void ensure_con_ip4_config (NMDevice *self) @@ -4720,7 +4720,7 @@ ensure_con_ip6_config (NMDevice *self) } } -/*********************************************/ +/*****************************************************************************/ /* DHCPv4 stuff */ static void @@ -5218,7 +5218,7 @@ nm_device_dhcp4_renew (NMDevice *self, gboolean release) return (ret != NM_ACT_STAGE_RETURN_FAILURE); } -/*********************************************/ +/*****************************************************************************/ static GHashTable *shared_ips = NULL; @@ -5288,7 +5288,7 @@ shared4_new_config (NMDevice *self, NMConnection *connection, NMDeviceStateReaso return config; } -/*********************************************/ +/*****************************************************************************/ static gboolean connection_ip4_method_requires_carrier (NMConnection *connection, @@ -5466,7 +5466,7 @@ act_stage3_ip4_config_start (NMDevice *self, return ret; } -/*********************************************/ +/*****************************************************************************/ /* DHCPv6 stuff */ static void @@ -6045,7 +6045,7 @@ nm_device_dhcp6_renew (NMDevice *self, gboolean release) return dhcp6_start (self, FALSE, NULL); } -/******************************************/ +/*****************************************************************************/ static void linklocal6_cleanup (NMDevice *self) @@ -6225,7 +6225,7 @@ linklocal6_start (NMDevice *self) return NM_ACT_STAGE_RETURN_POSTPONE; } -/******************************************/ +/*****************************************************************************/ static void nm_device_ipv6_set_mtu (NMDevice *self, guint32 mtu); @@ -6548,7 +6548,7 @@ addrconf6_cleanup (NMDevice *self) g_clear_object (&priv->rdisc); } -/******************************************/ +/*****************************************************************************/ static const char *ip6_properties_to_save[] = { "accept_ra", @@ -6644,7 +6644,7 @@ set_nm_ipv6ll (NMDevice *self, gboolean enable) } } -/************************************************************************/ +/*****************************************************************************/ static NMSettingIP6ConfigPrivacy _ip6_privacy_clamp (NMSettingIP6ConfigPrivacy use_tempaddr) @@ -6702,7 +6702,7 @@ _ip6_privacy_get (NMDevice *self) return _ip6_privacy_clamp (ip6_privacy); } -/****************************************************************/ +/*****************************************************************************/ static gboolean ip6_requires_slaves (NMConnection *connection) @@ -8852,7 +8852,7 @@ nm_device_get_ip6_config (NMDevice *self) return NM_DEVICE_GET_PRIVATE (self)->ip6_config; } -/****************************************************************/ +/*****************************************************************************/ static void dispatcher_cleanup (NMDevice *self) @@ -8882,7 +8882,7 @@ dispatcher_complete_proceed_state (guint call_id, gpointer user_data) priv->dispatcher.post_state_reason = NM_DEVICE_STATE_REASON_NONE; } -/****************************************************************/ +/*****************************************************************************/ static void ip_check_pre_up (NMDevice *self) @@ -9110,7 +9110,7 @@ nm_device_start_ip_check (NMDevice *self) ip_check_pre_up (self); } -/****************************************************************/ +/*****************************************************************************/ static gboolean carrier_wait_timeout (gpointer user_data) @@ -10663,7 +10663,7 @@ nm_device_has_pending_action (NMDevice *self) return !!priv->pending_actions; } -/***********************************************************/ +/*****************************************************************************/ static void _cancel_activation (NMDevice *self) @@ -11025,7 +11025,7 @@ nm_device_spawn_iface_helper (NMDevice *self) g_ptr_array_unref (argv); } -/***********************************************************/ +/*****************************************************************************/ static gboolean ip_config_valid (NMDeviceState state) @@ -11566,7 +11566,7 @@ nm_device_get_state (NMDevice *self) return NM_DEVICE_GET_PRIVATE (self)->state; } -/***********************************************************/ +/*****************************************************************************/ /* NMConfigDevice interface related stuff */ const char * @@ -12121,7 +12121,7 @@ spec_match_list (NMDevice *self, const GSList *specs) return matched; } -/***********************************************************/ +/*****************************************************************************/ static const char * _activation_func_to_string (ActivationHandleFunc func) @@ -12141,7 +12141,7 @@ _activation_func_to_string (ActivationHandleFunc func) g_return_val_if_reached ("unknown"); } -/***********************************************************/ +/*****************************************************************************/ static void nm_device_init (NMDevice *self) @@ -12643,7 +12643,6 @@ nm_device_class_init (NMDeviceClass *klass) exported_object_class->export_path = NM_DBUS_PATH "/Devices/%u"; - /* Virtual methods */ object_class->dispose = dispose; object_class->finalize = finalize; object_class->set_property = set_property; @@ -12675,7 +12674,6 @@ nm_device_class_init (NMDeviceClass *klass) klass->unmanaged_on_quit = unmanaged_on_quit; klass->deactivate_reset_hw_addr = deactivate_reset_hw_addr; - /* Properties */ obj_properties[PROP_UDI] = g_param_spec_string (NM_DEVICE_UDI, "", "", NULL, @@ -12893,7 +12891,6 @@ nm_device_class_init (NMDeviceClass *klass) g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); - /* Signals */ signals[STATE_CHANGED] = g_signal_new (NM_DEVICE_STATE_CHANGED, G_OBJECT_CLASS_TYPE (object_class), diff --git a/src/devices/nm-lldp-listener.c b/src/devices/nm-lldp-listener.c index 0ceb84bccf..0c295cac92 100644 --- a/src/devices/nm-lldp-listener.c +++ b/src/devices/nm-lldp-listener.c @@ -66,6 +66,12 @@ typedef struct { }; } LldpAttrData; +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE (NMLldpListener, + PROP_NEIGHBORS, +); + typedef struct { char *iface; int ifindex; @@ -79,13 +85,20 @@ typedef struct { GVariant *variant; } NMLldpListenerPrivate; -NM_GOBJECT_PROPERTIES_DEFINE (NMLldpListener, - PROP_NEIGHBORS, -); +struct _NMLldpListener { + GObject parent; + NMLldpListenerPrivate _priv; +}; + +struct _NMLldpListenerClass { + GObjectClass parent; +}; G_DEFINE_TYPE (NMLldpListener, nm_lldp_listener, G_TYPE_OBJECT) -#define NM_LLDP_LISTENER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_LLDP_LISTENER, NMLldpListenerPrivate)) +#define NM_LLDP_LISTENER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMLldpListener, NM_IS_LLDP_LISTENER) + +/*****************************************************************************/ typedef struct { guint8 chassis_id_type; @@ -903,8 +916,6 @@ nm_lldp_listener_class_init (NMLldpListenerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMLldpListenerPrivate)); - object_class->dispose = dispose; object_class->finalize = finalize; object_class->get_property = get_property; diff --git a/src/devices/nm-lldp-listener.h b/src/devices/nm-lldp-listener.h index 870ca8a5b5..1afa84569a 100644 --- a/src/devices/nm-lldp-listener.h +++ b/src/devices/nm-lldp-listener.h @@ -30,13 +30,7 @@ #define NM_LLDP_LISTENER_NEIGHBORS "neighbors" -struct _NMLldpListener { - GObject parent; -}; - -typedef struct { - GObjectClass parent; -} NMLldpListenerClass; +typedef struct _NMLldpListenerClass NMLldpListenerClass; GType nm_lldp_listener_get_type (void); NMLldpListener *nm_lldp_listener_new (void); diff --git a/src/devices/team/Makefile.am b/src/devices/team/Makefile.am index f0ed8201be..f2ad28d1cd 100644 --- a/src/devices/team/Makefile.am +++ b/src/devices/team/Makefile.am @@ -28,10 +28,9 @@ pkglib_LTLIBRARIES = libnm-device-plugin-team.la SYMBOL_VIS_FILE=$(srcdir)/exports.ver libnm_device_plugin_team_la_SOURCES = \ - nm-device-team.c \ - nm-device-team.h \ nm-team-factory.c \ - nm-team-factory.h + nm-device-team.c \ + nm-device-team.h libnm_device_plugin_team_la_LDFLAGS = \ -module -avoid-version \ diff --git a/src/devices/team/nm-device-team.c b/src/devices/team/nm-device-team.c index 09eefe7014..0ed80f84c8 100644 --- a/src/devices/team/nm-device-team.c +++ b/src/devices/team/nm-device-team.c @@ -20,6 +20,8 @@ #include "nm-default.h" +#include "nm-device-team.h" + #include <sys/types.h> #include <unistd.h> #include <signal.h> @@ -27,7 +29,6 @@ #include <teamdctl.h> #include <stdlib.h> -#include "nm-device-team.h" #include "NetworkManagerUtils.h" #include "nm-device-private.h" #include "nm-platform.h" @@ -41,9 +42,7 @@ #include "nm-device-logging.h" _LOG_DECLARE_SELF(NMDeviceTeam); -G_DEFINE_TYPE (NMDeviceTeam, nm_device_team, NM_TYPE_DEVICE) - -#define NM_DEVICE_TEAM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_TEAM, NMDeviceTeamPrivate)) +/*****************************************************************************/ NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceTeam, PROP_CONFIG, @@ -59,9 +58,24 @@ typedef struct { char *config; } NMDeviceTeamPrivate; +struct _NMDeviceTeam { + NMDevice parent; + NMDeviceTeamPrivate _priv; +}; + +struct _NMDeviceTeamClass { + NMDeviceClass parent; +}; + +G_DEFINE_TYPE (NMDeviceTeam, nm_device_team, NM_TYPE_DEVICE) + +#define NM_DEVICE_TEAM_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceTeam, NM_IS_DEVICE_TEAM) + +/*****************************************************************************/ + static gboolean teamd_start (NMDevice *device, NMSettingTeam *s_team); -/******************************************************************/ +/*****************************************************************************/ static NMDeviceCapabilities get_generic_capabilities (NMDevice *device) @@ -179,7 +193,7 @@ teamd_read_config (NMDevice *device) static gboolean teamd_read_timeout_cb (gpointer user_data) { - NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (user_data); + NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE ((NMDeviceTeam *) user_data); teamd_read_config ((NMDevice *) user_data); priv->teamd_read_timeout = 0; @@ -214,7 +228,7 @@ update_connection (NMDevice *device, NMConnection *connection) g_object_set (G_OBJECT (s_team), NM_SETTING_TEAM_CONFIG, priv->config, NULL); } -/******************************************************************/ +/*****************************************************************************/ static gboolean master_update_slave_connection (NMDevice *self, @@ -281,12 +295,12 @@ master_update_slave_connection (NMDevice *self, return TRUE; } -/******************************************************************/ +/*****************************************************************************/ static void teamd_cleanup (NMDevice *device, gboolean free_tdc) { - NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (device); + NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE ((NMDeviceTeam *) device); nm_clear_g_source (&priv->teamd_process_watch); nm_clear_g_source (&priv->teamd_timeout); @@ -309,7 +323,7 @@ teamd_timeout_cb (gpointer user_data) { NMDeviceTeam *self = NM_DEVICE_TEAM (user_data); NMDevice *device = NM_DEVICE (self); - NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (device); + NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (self); g_return_val_if_fail (priv->teamd_timeout, FALSE); priv->teamd_timeout = 0; @@ -637,7 +651,7 @@ enslave_slave (NMDevice *device, gboolean configure) { NMDeviceTeam *self = NM_DEVICE_TEAM (device); - NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (device); + NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (self); gboolean success = TRUE, no_firmware = FALSE; const char *slave_iface = nm_device_get_ip_iface (slave); NMSettingTeamPort *s_team_port; @@ -696,7 +710,7 @@ release_slave (NMDevice *device, gboolean configure) { NMDeviceTeam *self = NM_DEVICE_TEAM (device); - NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (device); + NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (self); gboolean success, no_firmware = FALSE; if (configure) { @@ -748,20 +762,7 @@ create_and_realize (NMDevice *device, return TRUE; } -/******************************************************************/ - -NMDevice * -nm_device_team_new (const char *iface) -{ - return (NMDevice *) g_object_new (NM_TYPE_DEVICE_TEAM, - NM_DEVICE_IFACE, iface, - NM_DEVICE_DRIVER, "team", - NM_DEVICE_TYPE_DESC, "Team", - NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_TEAM, - NM_DEVICE_LINK_TYPE, NM_LINK_TYPE_TEAM, - NM_DEVICE_IS_MASTER, TRUE, - NULL); -} +/*****************************************************************************/ static void get_property (GObject *object, guint prop_id, @@ -780,6 +781,8 @@ get_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + static void nm_device_team_init (NMDeviceTeam * self) { @@ -789,7 +792,7 @@ static void constructed (GObject *object) { NMDevice *device = NM_DEVICE (object); - NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (object); + NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE ((NMDeviceTeam *) device); char *tmp_str = NULL; G_OBJECT_CLASS (nm_device_team_parent_class)->constructed (object); @@ -806,11 +809,24 @@ constructed (GObject *object) g_free (tmp_str); } +NMDevice * +nm_device_team_new (const char *iface) +{ + return (NMDevice *) g_object_new (NM_TYPE_DEVICE_TEAM, + NM_DEVICE_IFACE, iface, + NM_DEVICE_DRIVER, "team", + NM_DEVICE_TYPE_DESC, "Team", + NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_TEAM, + NM_DEVICE_LINK_TYPE, NM_LINK_TYPE_TEAM, + NM_DEVICE_IS_MASTER, TRUE, + NULL); +} + static void dispose (GObject *object) { NMDevice *device = NM_DEVICE (object); - NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (object); + NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE ((NMDeviceTeam *) device); if (priv->teamd_dbus_watch) { g_bus_unwatch_name (priv->teamd_dbus_watch); @@ -829,8 +845,6 @@ nm_device_team_class_init (NMDeviceTeamClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMDeviceTeamPrivate)); - NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_TEAM_SETTING_NAME, NM_LINK_TYPE_TEAM) object_class->constructed = constructed; diff --git a/src/devices/team/nm-device-team.h b/src/devices/team/nm-device-team.h index 43e8aab408..90af2e87c5 100644 --- a/src/devices/team/nm-device-team.h +++ b/src/devices/team/nm-device-team.h @@ -33,8 +33,8 @@ /* Properties */ #define NM_DEVICE_TEAM_CONFIG "config" -typedef NMDevice NMDeviceTeam; -typedef NMDeviceClass NMDeviceTeamClass; +typedef struct _NMDeviceTeam NMDeviceTeam; +typedef struct _NMDeviceTeamClass NMDeviceTeamClass; GType nm_device_team_get_type (void); diff --git a/src/devices/team/nm-team-factory.c b/src/devices/team/nm-team-factory.c index edb1329995..97275f7ef7 100644 --- a/src/devices/team/nm-team-factory.c +++ b/src/devices/team/nm-team-factory.c @@ -25,28 +25,40 @@ #include "nm-manager.h" #include "nm-device-factory.h" -#include "nm-team-factory.h" #include "nm-device-team.h" #include "nm-platform.h" #include "nm-core-internal.h" +/*****************************************************************************/ + +#define NM_TYPE_TEAM_FACTORY (nm_team_factory_get_type ()) +#define NM_TEAM_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_TEAM_FACTORY, NMTeamFactory)) +#define NM_TEAM_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_TEAM_FACTORY, NMTeamFactoryClass)) +#define NM_IS_TEAM_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_TEAM_FACTORY)) +#define NM_IS_TEAM_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_TEAM_FACTORY)) +#define NM_TEAM_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_TEAM_FACTORY, NMTeamFactoryClass)) + +typedef struct _NMTeamFactory NMTeamFactory; +typedef struct _NMTeamFactoryClass NMTeamFactoryClass; + static GType nm_team_factory_get_type (void); +/*****************************************************************************/ + +struct _NMTeamFactory { + GObject parent; +}; + +struct _NMTeamFactoryClass { + GObjectClass parent; +}; + static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface); G_DEFINE_TYPE_EXTENDED (NMTeamFactory, nm_team_factory, G_TYPE_OBJECT, 0, G_IMPLEMENT_INTERFACE (NM_TYPE_DEVICE_FACTORY, device_factory_interface_init)) -/************************************************************************/ - -G_MODULE_EXPORT NMDeviceFactory * -nm_device_factory_create (GError **error) -{ - nm_manager_set_capability (nm_manager_get (), NM_CAPABILITY_TEAM); - return (NMDeviceFactory *) g_object_new (NM_TYPE_TEAM_FACTORY, NULL); -} - -/************************************************************************/ +/*****************************************************************************/ static NMDevice * create_device (NMDeviceFactory *factory, @@ -63,7 +75,7 @@ NM_DEVICE_FACTORY_DECLARE_TYPES ( NM_DEVICE_FACTORY_DECLARE_SETTING_TYPES (NM_SETTING_TEAM_SETTING_NAME) ) -/************************************************************************/ +/*****************************************************************************/ static void nm_team_factory_init (NMTeamFactory *self) @@ -71,13 +83,22 @@ nm_team_factory_init (NMTeamFactory *self) } static void +nm_team_factory_class_init (NMTeamFactoryClass *klass) +{ +} + +static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface) { factory_iface->create_device = create_device; factory_iface->get_supported_types = get_supported_types; } -static void -nm_team_factory_class_init (NMTeamFactoryClass *klass) +/*****************************************************************************/ + +G_MODULE_EXPORT NMDeviceFactory * +nm_device_factory_create (GError **error) { + nm_manager_set_capability (nm_manager_get (), NM_CAPABILITY_TEAM); + return (NMDeviceFactory *) g_object_new (NM_TYPE_TEAM_FACTORY, NULL); } diff --git a/src/devices/team/nm-team-factory.h b/src/devices/team/nm-team-factory.h deleted file mode 100644 index 4155870c2a..0000000000 --- a/src/devices/team/nm-team-factory.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager -- Network link manager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright (C) 2014 Red Hat, Inc. - */ - -#ifndef __NETWORKMANAGER_TEAM_FACTORY_H__ -#define __NETWORKMANAGER_TEAM_FACTORY_H__ - -#define NM_TYPE_TEAM_FACTORY (nm_team_factory_get_type ()) -#define NM_TEAM_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_TEAM_FACTORY, NMTeamFactory)) - -typedef struct { - GObject parent; -} NMTeamFactory; - -typedef struct { - GObjectClass parent; -} NMTeamFactoryClass; - -#endif /* __NETWORKMANAGER_TEAM_FACTORY_H__ */ diff --git a/src/devices/wifi/nm-device-olpc-mesh.c b/src/devices/wifi/nm-device-olpc-mesh.c index 32ebac3b74..cac8b068cd 100644 --- a/src/devices/wifi/nm-device-olpc-mesh.c +++ b/src/devices/wifi/nm-device-olpc-mesh.c @@ -26,6 +26,8 @@ #include "nm-default.h" +#include "nm-device-olpc-mesh.h" + #include <netinet/in.h> #include <string.h> #include <sys/stat.h> @@ -37,11 +39,10 @@ #include "nm-device.h" #include "nm-device-wifi.h" -#include "nm-device-olpc-mesh.h" #include "nm-device-private.h" #include "nm-utils.h" #include "NetworkManagerUtils.h" -#include "nm-activation-request.h" +#include "nm-act-request.h" #include "nm-setting-connection.h" #include "nm-setting-olpc-mesh.h" #include "nm-manager.h" @@ -56,25 +57,33 @@ #include "nm-device-logging.h" _LOG_DECLARE_SELF(NMDeviceOlpcMesh); -G_DEFINE_TYPE (NMDeviceOlpcMesh, nm_device_olpc_mesh, NM_TYPE_DEVICE) - -#define NM_DEVICE_OLPC_MESH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_OLPC_MESH, NMDeviceOlpcMeshPrivate)) +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE (NMDeviceOlpcMesh, PROP_COMPANION, PROP_ACTIVE_CHANNEL, +); - LAST_PROP -}; - -struct _NMDeviceOlpcMeshPrivate { +typedef struct { NMDevice *companion; NMManager *manager; gboolean stage1_waiting; +} NMDeviceOlpcMeshPrivate; + +struct _NMDeviceOlpcMesh { + NMDevice parent; + NMDeviceOlpcMeshPrivate _priv; +}; + +struct _NMDeviceOlpcMeshClass { + NMDeviceClass parent; }; -/*******************************************************************/ +G_DEFINE_TYPE (NMDeviceOlpcMesh, nm_device_olpc_mesh, NM_TYPE_DEVICE) + +#define NM_DEVICE_OLPC_MESH_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceOlpcMesh, NM_IS_DEVICE_OLPC_MESH) + +/*****************************************************************************/ static gboolean check_connection_compatible (NMDevice *device, NMConnection *connection) @@ -152,13 +161,13 @@ complete_connection (NMDevice *device, return TRUE; } -/****************************************************************************/ +/*****************************************************************************/ static NMActStageReturn act_stage1_prepare (NMDevice *device, NMDeviceStateReason *reason) { NMDeviceOlpcMesh *self = NM_DEVICE_OLPC_MESH (device); - NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (device); + NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (self); NMActStageReturn ret; gboolean scanning; @@ -196,7 +205,7 @@ _mesh_set_channel (NMDeviceOlpcMesh *self, guint32 channel) if (nm_platform_mesh_get_channel (NM_PLATFORM_GET, ifindex) != channel) { if (nm_platform_mesh_set_channel (NM_PLATFORM_GET, ifindex, channel)) - g_object_notify (G_OBJECT (self), NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL); + _notify (self, PROP_ACTIVE_CHANNEL); } } @@ -245,7 +254,7 @@ is_available (NMDevice *device, NMDeviceCheckDevAvailableFlags flags) return TRUE; } -/*******************************************************************/ +/*****************************************************************************/ static void companion_cleanup (NMDeviceOlpcMesh *self) @@ -256,7 +265,7 @@ companion_cleanup (NMDeviceOlpcMesh *self) g_signal_handlers_disconnect_by_data (priv->companion, self); g_clear_object (&priv->companion); } - g_object_notify (G_OBJECT (self), NM_DEVICE_OLPC_MESH_COMPANION); + _notify (self, PROP_COMPANION); } static void @@ -354,7 +363,7 @@ check_companion (NMDeviceOlpcMesh *self, NMDevice *other) g_signal_connect (G_OBJECT (other), NM_DEVICE_AUTOCONNECT_ALLOWED, G_CALLBACK (companion_autoconnect_allowed_cb), self); - g_object_notify (G_OBJECT (self), NM_DEVICE_OLPC_MESH_COMPANION); + _notify (self, PROP_COMPANION); return TRUE; } @@ -415,19 +424,30 @@ state_changed (NMDevice *device, find_companion (NM_DEVICE_OLPC_MESH (device)); } -/*******************************************************************/ +/*****************************************************************************/ -NMDevice * -nm_device_olpc_mesh_new (const char *iface) +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) { - return (NMDevice *) g_object_new (NM_TYPE_DEVICE_OLPC_MESH, - NM_DEVICE_IFACE, iface, - NM_DEVICE_TYPE_DESC, "802.11 OLPC Mesh", - NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_OLPC_MESH, - NM_DEVICE_LINK_TYPE, NM_LINK_TYPE_OLPC_MESH, - NULL); + NMDeviceOlpcMesh *device = NM_DEVICE_OLPC_MESH (object); + NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (device); + + switch (prop_id) { + case PROP_COMPANION: + nm_utils_g_value_set_object_path (value, priv->companion); + break; + case PROP_ACTIVE_CHANNEL: + g_value_set_uint (value, nm_platform_mesh_get_channel (NM_PLATFORM_GET, nm_device_get_ifindex (NM_DEVICE (device)))); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } } +/*****************************************************************************/ + static void nm_device_olpc_mesh_init (NMDeviceOlpcMesh * self) { @@ -450,35 +470,15 @@ constructed (GObject *object) nm_device_set_dhcp_timeout (NM_DEVICE (self), 20); } -static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - NMDeviceOlpcMesh *device = NM_DEVICE_OLPC_MESH (object); - NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (device); - - switch (prop_id) { - case PROP_COMPANION: - nm_utils_g_value_set_object_path (value, priv->companion); - break; - case PROP_ACTIVE_CHANNEL: - g_value_set_uint (value, nm_platform_mesh_get_channel (NM_PLATFORM_GET, nm_device_get_ifindex (NM_DEVICE (device)))); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) +NMDevice * +nm_device_olpc_mesh_new (const char *iface) { - switch (prop_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + return (NMDevice *) g_object_new (NM_TYPE_DEVICE_OLPC_MESH, + NM_DEVICE_IFACE, iface, + NM_DEVICE_TYPE_DESC, "802.11 OLPC Mesh", + NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_OLPC_MESH, + NM_DEVICE_LINK_TYPE, NM_LINK_TYPE_OLPC_MESH, + NULL); } static void @@ -504,39 +504,33 @@ nm_device_olpc_mesh_class_init (NMDeviceOlpcMeshClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMDeviceOlpcMeshPrivate)); - NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_OLPC_MESH_SETTING_NAME, NM_LINK_TYPE_OLPC_MESH) object_class->constructed = constructed; object_class->get_property = get_property; - object_class->set_property = set_property; object_class->dispose = dispose; parent_class->check_connection_compatible = check_connection_compatible; parent_class->can_auto_connect = can_auto_connect; parent_class->complete_connection = complete_connection; - parent_class->is_available = is_available; parent_class->act_stage1_prepare = act_stage1_prepare; parent_class->act_stage2_config = act_stage2_config; - parent_class->state_changed = state_changed; - /* Properties */ - g_object_class_install_property - (object_class, PROP_COMPANION, - g_param_spec_string (NM_DEVICE_OLPC_MESH_COMPANION, "", "", - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_ACTIVE_CHANNEL, - g_param_spec_uint (NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_COMPANION] = + g_param_spec_string (NM_DEVICE_OLPC_MESH_COMPANION, "", "", + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_ACTIVE_CHANNEL] = + g_param_spec_uint (NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_OLPC_MESH_SKELETON, diff --git a/src/devices/wifi/nm-device-olpc-mesh.h b/src/devices/wifi/nm-device-olpc-mesh.h index 135226d5af..b58dfdf7be 100644 --- a/src/devices/wifi/nm-device-olpc-mesh.h +++ b/src/devices/wifi/nm-device-olpc-mesh.h @@ -41,25 +41,8 @@ #define NM_DEVICE_OLPC_MESH_BITRATE "bitrate" #define NM_DEVICE_OLPC_MESH_ACTIVE_CHANNEL "active-channel" -#ifndef NM_DEVICE_OLPC_MESH_DEFINED -#define NM_DEVICE_OLPC_MESH_DEFINED typedef struct _NMDeviceOlpcMesh NMDeviceOlpcMesh; -#endif - typedef struct _NMDeviceOlpcMeshClass NMDeviceOlpcMeshClass; -typedef struct _NMDeviceOlpcMeshPrivate NMDeviceOlpcMeshPrivate; - -struct _NMDeviceOlpcMesh -{ - NMDevice parent; -}; - -struct _NMDeviceOlpcMeshClass -{ - NMDeviceClass parent; - -}; - GType nm_device_olpc_mesh_get_type (void); diff --git a/src/devices/wifi/nm-device-wifi.c b/src/devices/wifi/nm-device-wifi.c index f98a40be63..d0fd6f69da 100644 --- a/src/devices/wifi/nm-device-wifi.c +++ b/src/devices/wifi/nm-device-wifi.c @@ -33,7 +33,7 @@ #include "nm-device-private.h" #include "nm-utils.h" #include "NetworkManagerUtils.h" -#include "nm-activation-request.h" +#include "nm-act-request.h" #include "nm-supplicant-manager.h" #include "nm-supplicant-interface.h" #include "nm-supplicant-config.h" @@ -2349,7 +2349,7 @@ error: return NULL; } -/****************************************************************************/ +/*****************************************************************************/ static NMActStageReturn act_stage1_prepare (NMDevice *device, NMDeviceStateReason *reason) @@ -3000,7 +3000,7 @@ set_enabled (NMDevice *device, gboolean enabled) } } -/********************************************************************/ +/*****************************************************************************/ NMDevice * nm_device_wifi_new (const char *iface, NMDeviceWifiCapabilities capabilities) diff --git a/src/devices/wifi/nm-wifi-ap.c b/src/devices/wifi/nm-wifi-ap.c index 2232f826c3..e723cd868b 100644 --- a/src/devices/wifi/nm-wifi-ap.c +++ b/src/devices/wifi/nm-wifi-ap.c @@ -85,7 +85,7 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMAccessPoint, PROP_LAST_SEEN, ); -/*****************************************************************/ +/*****************************************************************************/ const char * nm_ap_get_supplicant_path (NMAccessPoint *ap) @@ -344,7 +344,7 @@ nm_ap_set_last_seen (NMAccessPoint *ap, gint32 last_seen) } } -/*****************************************************************/ +/*****************************************************************************/ static NM80211ApSecurityFlags security_from_vardict (GVariant *security) @@ -871,7 +871,7 @@ nm_ap_complete_connection (NMAccessPoint *self, error); } -/*****************************************************************/ +/*****************************************************************************/ static void nm_ap_init (NMAccessPoint *ap) diff --git a/src/devices/wifi/nm-wifi-factory.c b/src/devices/wifi/nm-wifi-factory.c index 2d5f8faf00..1bd0756a48 100644 --- a/src/devices/wifi/nm-wifi-factory.c +++ b/src/devices/wifi/nm-wifi-factory.c @@ -30,33 +30,36 @@ #include "nm-settings-connection.h" #include "nm-platform.h" -#define NM_TYPE_WIFI_FACTORY (nm_wifi_factory_get_type ()) -#define NM_WIFI_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_WIFI_FACTORY, NMWifiFactory)) +/*****************************************************************************/ -typedef struct { - GObject parent; -} NMWifiFactory; +#define NM_TYPE_WIFI_FACTORY (nm_wifi_factory_get_type ()) +#define NM_WIFI_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_WIFI_FACTORY, NMWifiFactory)) +#define NM_WIFI_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_WIFI_FACTORY, NMWifiFactoryClass)) +#define NM_IS_WIFI_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_WIFI_FACTORY)) +#define NM_IS_WIFI_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_WIFI_FACTORY)) +#define NM_WIFI_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_WIFI_FACTORY, NMWifiFactoryClass)) -typedef struct { - GObjectClass parent; -} NMWifiFactoryClass; +typedef struct _NMWifiFactory NMWifiFactory; +typedef struct _NMWifiFactoryClass NMWifiFactoryClass; static GType nm_wifi_factory_get_type (void); +/*****************************************************************************/ + +struct _NMWifiFactory { + GObject parent; +}; + +struct _NMWifiFactoryClass { + GObjectClass parent; +}; + static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface); G_DEFINE_TYPE_EXTENDED (NMWifiFactory, nm_wifi_factory, G_TYPE_OBJECT, 0, G_IMPLEMENT_INTERFACE (NM_TYPE_DEVICE_FACTORY, device_factory_interface_init)) -/**************************************************************************/ - -G_MODULE_EXPORT NMDeviceFactory * -nm_device_factory_create (GError **error) -{ - return (NMDeviceFactory *) g_object_new (NM_TYPE_WIFI_FACTORY, NULL); -} - -/**************************************************************************/ +/*****************************************************************************/ static NMDevice * create_device (NMDeviceFactory *factory, @@ -101,20 +104,29 @@ NM_DEVICE_FACTORY_DECLARE_TYPES ( NM_DEVICE_FACTORY_DECLARE_SETTING_TYPES (NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_OLPC_MESH_SETTING_NAME) ) +/*****************************************************************************/ + static void -device_factory_interface_init (NMDeviceFactoryInterface *factory_iface) +nm_wifi_factory_init (NMWifiFactory *self) { - factory_iface->create_device = create_device; - factory_iface->get_supported_types = get_supported_types; } static void -nm_wifi_factory_init (NMWifiFactory *self) +nm_wifi_factory_class_init (NMWifiFactoryClass *wf_class) { } static void -nm_wifi_factory_class_init (NMWifiFactoryClass *wf_class) +device_factory_interface_init (NMDeviceFactoryInterface *factory_iface) { + factory_iface->create_device = create_device; + factory_iface->get_supported_types = get_supported_types; } +/*****************************************************************************/ + +G_MODULE_EXPORT NMDeviceFactory * +nm_device_factory_create (GError **error) +{ + return (NMDeviceFactory *) g_object_new (NM_TYPE_WIFI_FACTORY, NULL); +} diff --git a/src/devices/wifi/tests/test-wifi-ap-utils.c b/src/devices/wifi/tests/test-wifi-ap-utils.c index dbe185b3a8..1ef18e6af9 100644 --- a/src/devices/wifi/tests/test-wifi-ap-utils.c +++ b/src/devices/wifi/tests/test-wifi-ap-utils.c @@ -30,7 +30,7 @@ #define DEBUG 1 -/*******************************************/ +/*****************************************************************************/ #define COMPARE(src, expected, success, error, edomain, ecode) \ { \ @@ -246,7 +246,7 @@ create_basic (const char *ssid, return connection; } -/*******************************************/ +/*****************************************************************************/ static void test_lock_bssid (void) @@ -270,7 +270,7 @@ test_lock_bssid (void) g_object_unref (expected); } -/*******************************************/ +/*****************************************************************************/ static void test_open_ap_empty_connection (void) @@ -298,7 +298,7 @@ test_open_ap_empty_connection (void) g_object_unref (expected); } -/*******************************************/ +/*****************************************************************************/ static void test_open_ap_leap_connection_1 (gconstpointer add_wifi) @@ -330,7 +330,7 @@ test_open_ap_leap_connection_1 (gconstpointer add_wifi) g_object_unref (src); } -/*******************************************/ +/*****************************************************************************/ static void test_open_ap_leap_connection_2 (void) @@ -360,7 +360,7 @@ test_open_ap_leap_connection_2 (void) g_object_unref (src); } -/*******************************************/ +/*****************************************************************************/ static void test_open_ap_wep_connection (gconstpointer add_wifi) @@ -394,7 +394,7 @@ test_open_ap_wep_connection (gconstpointer add_wifi) g_object_unref (src); } -/*******************************************/ +/*****************************************************************************/ static void test_ap_wpa_psk_connection_base (const char *key_mgmt, @@ -515,7 +515,7 @@ test_open_ap_wpa_psk_connection_5 (void) NULL); } -/*******************************************/ +/*****************************************************************************/ static void test_ap_wpa_eap_connection_base (const char *key_mgmt, @@ -707,7 +707,7 @@ test_ap_wpa_eap_connection_5 (gconstpointer data) error_code_for_idx (idx, 5)); } -/*******************************************/ +/*****************************************************************************/ static void test_priv_ap_empty_connection (void) @@ -741,7 +741,7 @@ test_priv_ap_empty_connection (void) g_object_unref (expected); } -/*******************************************/ +/*****************************************************************************/ static void test_priv_ap_leap_connection_1 (gconstpointer add_wifi) @@ -788,7 +788,7 @@ test_priv_ap_leap_connection_1 (gconstpointer add_wifi) g_object_unref (expected); } -/*******************************************/ +/*****************************************************************************/ static void test_priv_ap_leap_connection_2 (void) @@ -821,7 +821,7 @@ test_priv_ap_leap_connection_2 (void) g_object_unref (src); } -/*******************************************/ +/*****************************************************************************/ static void test_priv_ap_dynamic_wep_1 (void) @@ -870,7 +870,7 @@ test_priv_ap_dynamic_wep_1 (void) g_object_unref (expected); } -/*******************************************/ +/*****************************************************************************/ static void test_priv_ap_dynamic_wep_2 (void) @@ -918,7 +918,7 @@ test_priv_ap_dynamic_wep_2 (void) g_object_unref (expected); } -/*******************************************/ +/*****************************************************************************/ static void test_priv_ap_dynamic_wep_3 (void) @@ -955,7 +955,7 @@ test_priv_ap_dynamic_wep_3 (void) g_object_unref (src); } -/*******************************************/ +/*****************************************************************************/ static void test_priv_ap_wpa_psk_connection_1 (void) @@ -1040,7 +1040,7 @@ test_priv_ap_wpa_psk_connection_5 (void) NULL); } -/*******************************************/ +/*****************************************************************************/ static void test_wpa_ap_empty_connection (gconstpointer data) @@ -1077,7 +1077,7 @@ test_wpa_ap_empty_connection (gconstpointer data) g_object_unref (expected); } -/*******************************************/ +/*****************************************************************************/ static void test_wpa_ap_leap_connection_1 (gconstpointer data) @@ -1113,7 +1113,7 @@ test_wpa_ap_leap_connection_1 (gconstpointer data) g_object_unref (src); } -/*******************************************/ +/*****************************************************************************/ static void test_wpa_ap_leap_connection_2 (gconstpointer data) @@ -1147,7 +1147,7 @@ test_wpa_ap_leap_connection_2 (gconstpointer data) g_object_unref (src); } -/*******************************************/ +/*****************************************************************************/ static void test_wpa_ap_dynamic_wep_connection (gconstpointer data) @@ -1180,7 +1180,7 @@ test_wpa_ap_dynamic_wep_connection (gconstpointer data) g_object_unref (src); } -/*******************************************/ +/*****************************************************************************/ static void test_wpa_ap_wpa_psk_connection_1 (gconstpointer data) @@ -1283,7 +1283,7 @@ test_wpa_ap_wpa_psk_connection_5 (gconstpointer data) g_object_unref (expected); } -/*******************************************/ +/*****************************************************************************/ static void test_strength_dbm (void) @@ -1334,7 +1334,7 @@ test_strength_wext (void) g_assert_cmpint (nm_ap_utils_level_to_quality (215), ==, 99); } -/*******************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/src/devices/wwan/Makefile.am b/src/devices/wwan/Makefile.am index 1b117d4f3d..845951d14c 100644 --- a/src/devices/wwan/Makefile.am +++ b/src/devices/wwan/Makefile.am @@ -68,7 +68,6 @@ SYMBOL_VIS_FILE=$(srcdir)/exports.ver libnm_device_plugin_wwan_la_SOURCES = \ nm-wwan-factory.c \ - nm-wwan-factory.h \ nm-device-modem.c \ nm-device-modem.h diff --git a/src/devices/wwan/nm-device-modem.c b/src/devices/wwan/nm-device-modem.c index f6ca0e9224..90fe4d6882 100644 --- a/src/devices/wwan/nm-device-modem.c +++ b/src/devices/wwan/nm-device-modem.c @@ -20,9 +20,10 @@ #include "nm-default.h" +#include "nm-device-modem.h" + #include <string.h> -#include "nm-device-modem.h" #include "nm-modem.h" #include "nm-device-private.h" #include "nm-rfkill-manager.h" @@ -31,14 +32,18 @@ #include "NetworkManagerUtils.h" #include "nm-core-internal.h" +#include "nmdbus-device-modem.h" + #include "nm-device-logging.h" _LOG_DECLARE_SELF(NMDeviceModem); -#include "nmdbus-device-modem.h" - -G_DEFINE_TYPE (NMDeviceModem, nm_device_modem, NM_TYPE_DEVICE) +/*****************************************************************************/ -#define NM_DEVICE_MODEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_MODEM, NMDeviceModemPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_MODEM, + PROP_CAPABILITIES, + PROP_CURRENT_CAPABILITIES, +); typedef struct { NMModem *modem; @@ -47,13 +52,19 @@ typedef struct { gboolean rf_enabled; } NMDeviceModemPrivate; -enum { - PROP_0, - PROP_MODEM, - PROP_CAPABILITIES, - PROP_CURRENT_CAPABILITIES, +struct _NMDeviceModem { + NMDevice parent; + NMDeviceModemPrivate _priv; }; +struct _NMDeviceModemClass { + NMDeviceClass parent; +}; + +G_DEFINE_TYPE (NMDeviceModem, nm_device_modem, NM_TYPE_DEVICE) + +#define NM_DEVICE_MODEM_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDeviceModem, NM_IS_DEVICE_MODEM) + /*****************************************************************************/ static void @@ -281,7 +292,7 @@ modem_state_cb (NMModem *modem, gpointer user_data) { NMDevice *device = NM_DEVICE (user_data); - NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (device); + NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device); NMDeviceState dev_state = nm_device_get_state (device); if (new_state <= NM_MODEM_STATE_DISABLING && @@ -335,9 +346,10 @@ modem_removed_cb (NMModem *modem, gpointer user_data) static gboolean owns_iface (NMDevice *device, const char *iface) { - NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (device); + NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device); + + g_return_val_if_fail (priv->modem, FALSE); - g_assert (priv->modem); return nm_modem_owns_port (priv->modem, iface); } @@ -350,7 +362,7 @@ device_state_changed (NMDevice *device, NMDeviceStateReason reason) { NMDeviceModem *self = NM_DEVICE_MODEM (device); - NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (device); + NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (self); NMConnection *connection = nm_device_get_applied_connection (device); g_assert (priv->modem); @@ -394,7 +406,7 @@ get_generic_capabilities (NMDevice *device) static const char * get_type_description (NMDevice *device) { - NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (device); + NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device); if (NM_FLAGS_HAS (priv->current_caps, NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS)) return "gsm"; @@ -409,7 +421,7 @@ check_connection_compatible (NMDevice *device, NMConnection *connection) if (!NM_DEVICE_CLASS (nm_device_modem_parent_class)->check_connection_compatible (device, connection)) return FALSE; - return nm_modem_check_connection_compatible (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem, connection); + return nm_modem_check_connection_compatible (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem, connection); } static gboolean @@ -444,7 +456,7 @@ complete_connection (NMDevice *device, const GSList *existing_connections, GError **error) { - NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (device); + NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device); return nm_modem_complete_connection (priv->modem, connection, existing_connections, error); } @@ -452,10 +464,10 @@ complete_connection (NMDevice *device, static void deactivate (NMDevice *device) { - nm_modem_deactivate (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem, device); + nm_modem_deactivate (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem, device); } -/***********************************************************/ +/*****************************************************************************/ static gboolean deactivate_async_finish (NMDevice *self, @@ -490,14 +502,14 @@ deactivate_async (NMDevice *self, callback, user_data, deactivate_async); - nm_modem_deactivate_async (NM_DEVICE_MODEM_GET_PRIVATE (self)->modem, + nm_modem_deactivate_async (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) self)->modem, self, cancellable, (GAsyncReadyCallback) modem_deactivate_async_ready, simple); } -/***********************************************************/ +/*****************************************************************************/ static NMActStageReturn act_stage1_prepare (NMDevice *device, NMDeviceStateReason *reason) @@ -512,7 +524,7 @@ act_stage1_prepare (NMDevice *device, NMDeviceStateReason *reason) req = nm_device_get_act_request (device); g_assert (req); - return nm_modem_act_stage1_prepare (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem, req, reason); + return nm_modem_act_stage1_prepare (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem, req, reason); } static NMActStageReturn @@ -523,7 +535,7 @@ act_stage2_config (NMDevice *device, NMDeviceStateReason *reason) req = nm_device_get_act_request (device); g_assert (req); - return nm_modem_act_stage2_config (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem, req, reason); + return nm_modem_act_stage2_config (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem, req, reason); } static NMActStageReturn @@ -531,7 +543,7 @@ act_stage3_ip4_config_start (NMDevice *device, NMIP4Config **out_config, NMDeviceStateReason *reason) { - return nm_modem_stage3_ip4_config_start (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem, + return nm_modem_stage3_ip4_config_start (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem, device, NM_DEVICE_CLASS (nm_device_modem_parent_class), reason); @@ -540,7 +552,7 @@ act_stage3_ip4_config_start (NMDevice *device, static void ip4_config_pre_commit (NMDevice *device, NMIP4Config *config) { - nm_modem_ip4_pre_commit (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem, device, config); + nm_modem_ip4_pre_commit (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem, device, config); } static NMActStageReturn @@ -548,7 +560,7 @@ act_stage3_ip6_config_start (NMDevice *device, NMIP6Config **out_config, NMDeviceStateReason *reason) { - return nm_modem_stage3_ip6_config_start (NM_DEVICE_MODEM_GET_PRIVATE (device)->modem, + return nm_modem_stage3_ip6_config_start (NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device)->modem, nm_device_get_act_request (device), reason); } @@ -572,7 +584,7 @@ get_ip_iface_identifier (NMDevice *device, NMUtilsIPv6IfaceId *out_iid) static gboolean get_enabled (NMDevice *device) { - NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (device); + NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) device); NMModemState modem_state = nm_modem_get_state (priv->modem); return priv->rf_enabled && (modem_state >= NM_MODEM_STATE_LOCKED); @@ -621,58 +633,6 @@ is_available (NMDevice *device, NMDeviceCheckDevAvailableFlags flags) /*****************************************************************************/ -NMDevice * -nm_device_modem_new (NMModem *modem) -{ - NMDeviceModemCapabilities caps = NM_DEVICE_MODEM_CAPABILITY_NONE; - NMDeviceModemCapabilities current_caps = NM_DEVICE_MODEM_CAPABILITY_NONE; - NMDevice *device; - const char *data_port; - - g_return_val_if_fail (NM_IS_MODEM (modem), NULL); - - /* Load capabilities */ - nm_modem_get_capabilities (modem, &caps, ¤t_caps); - - device = (NMDevice *) g_object_new (NM_TYPE_DEVICE_MODEM, - NM_DEVICE_UDI, nm_modem_get_path (modem), - NM_DEVICE_IFACE, nm_modem_get_uid (modem), - NM_DEVICE_DRIVER, nm_modem_get_driver (modem), - NM_DEVICE_TYPE_DESC, "Broadband", - NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_MODEM, - NM_DEVICE_RFKILL_TYPE, RFKILL_TYPE_WWAN, - NM_DEVICE_MODEM_MODEM, modem, - NM_DEVICE_MODEM_CAPABILITIES, caps, - NM_DEVICE_MODEM_CURRENT_CAPABILITIES, current_caps, - NULL); - - /* If the data port is known, set it as the IP interface immediately */ - data_port = nm_modem_get_data_port (modem); - if (data_port) { - nm_device_set_ip_iface (device, data_port); - nm_device_ipv6_sysctl_set (device, "disable_ipv6", "1"); - } - - return device; -} - -static void -nm_device_modem_init (NMDeviceModem *self) -{ -} - -static void -constructed (GObject *object) -{ - G_OBJECT_CLASS (nm_device_modem_parent_class)->constructed (object); - - /* DHCP is always done by the modem firmware, not by the network, and - * by the time we get around to DHCP the firmware should already know - * the IP addressing details. So the DHCP timeout can be much shorter. - */ - nm_device_set_dhcp_timeout (NM_DEVICE (object), 15); -} - static void set_modem (NMDeviceModem *self, NMModem *modem) { @@ -701,22 +661,23 @@ set_modem (NMDeviceModem *self, NMModem *modem) g_signal_connect (modem, "notify::" NM_MODEM_SIM_OPERATOR_ID, G_CALLBACK (ids_changed_cb), self); } +/*****************************************************************************/ + static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) { - NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (object); + NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) object); switch (prop_id) { case PROP_MODEM: - /* construct-only */ - set_modem (NM_DEVICE_MODEM (object), g_value_get_object (value)); + g_value_set_object (value, priv->modem); break; case PROP_CAPABILITIES: - priv->caps = g_value_get_uint (value); + g_value_set_uint (value, priv->caps); break; case PROP_CURRENT_CAPABILITIES: - priv->current_caps = g_value_get_uint (value); + g_value_set_uint (value, priv->current_caps); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -725,20 +686,21 @@ set_property (GObject *object, guint prop_id, } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) { - NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (object); + NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) object); switch (prop_id) { case PROP_MODEM: - g_value_set_object (value, priv->modem); + /* construct-only */ + set_modem (NM_DEVICE_MODEM (object), g_value_get_object (value)); break; case PROP_CAPABILITIES: - g_value_set_uint (value, priv->caps); + priv->caps = g_value_get_uint (value); break; case PROP_CURRENT_CAPABILITIES: - g_value_set_uint (value, priv->current_caps); + priv->current_caps = g_value_get_uint (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -746,10 +708,64 @@ get_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + +static void +nm_device_modem_init (NMDeviceModem *self) +{ +} + +static void +constructed (GObject *object) +{ + G_OBJECT_CLASS (nm_device_modem_parent_class)->constructed (object); + + /* DHCP is always done by the modem firmware, not by the network, and + * by the time we get around to DHCP the firmware should already know + * the IP addressing details. So the DHCP timeout can be much shorter. + */ + nm_device_set_dhcp_timeout (NM_DEVICE (object), 15); +} + +NMDevice * +nm_device_modem_new (NMModem *modem) +{ + NMDeviceModemCapabilities caps = NM_DEVICE_MODEM_CAPABILITY_NONE; + NMDeviceModemCapabilities current_caps = NM_DEVICE_MODEM_CAPABILITY_NONE; + NMDevice *device; + const char *data_port; + + g_return_val_if_fail (NM_IS_MODEM (modem), NULL); + + /* Load capabilities */ + nm_modem_get_capabilities (modem, &caps, ¤t_caps); + + device = (NMDevice *) g_object_new (NM_TYPE_DEVICE_MODEM, + NM_DEVICE_UDI, nm_modem_get_path (modem), + NM_DEVICE_IFACE, nm_modem_get_uid (modem), + NM_DEVICE_DRIVER, nm_modem_get_driver (modem), + NM_DEVICE_TYPE_DESC, "Broadband", + NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_MODEM, + NM_DEVICE_RFKILL_TYPE, RFKILL_TYPE_WWAN, + NM_DEVICE_MODEM_MODEM, modem, + NM_DEVICE_MODEM_CAPABILITIES, caps, + NM_DEVICE_MODEM_CURRENT_CAPABILITIES, current_caps, + NULL); + + /* If the data port is known, set it as the IP interface immediately */ + data_port = nm_modem_get_data_port (modem); + if (data_port) { + nm_device_set_ip_iface (device, data_port); + nm_device_ipv6_sysctl_set (device, "disable_ipv6", "1"); + } + + return device; +} + static void dispose (GObject *object) { - NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE (object); + NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE ((NMDeviceModem *) object); if (priv->modem) g_signal_handlers_disconnect_by_data (priv->modem, NM_DEVICE_MODEM (object)); @@ -764,9 +780,6 @@ nm_device_modem_class_init (NMDeviceModemClass *mclass) GObjectClass *object_class = G_OBJECT_CLASS (mclass); NMDeviceClass *device_class = NM_DEVICE_CLASS (mclass); - g_type_class_add_private (object_class, sizeof (NMDeviceModemPrivate)); - - /* Virtual methods */ object_class->dispose = dispose; object_class->get_property = get_property; object_class->set_property = set_property; @@ -793,27 +806,25 @@ nm_device_modem_class_init (NMDeviceModemClass *mclass) device_class->state_changed = device_state_changed; - /* Properties */ - g_object_class_install_property - (object_class, PROP_MODEM, - g_param_spec_object (NM_DEVICE_MODEM_MODEM, "", "", - NM_TYPE_MODEM, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_CAPABILITIES, - g_param_spec_uint (NM_DEVICE_MODEM_CAPABILITIES, "", "", - 0, G_MAXUINT32, NM_DEVICE_MODEM_CAPABILITY_NONE, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_CURRENT_CAPABILITIES, - g_param_spec_uint (NM_DEVICE_MODEM_CURRENT_CAPABILITIES, "", "", - 0, G_MAXUINT32, NM_DEVICE_MODEM_CAPABILITY_NONE, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MODEM] = + g_param_spec_object (NM_DEVICE_MODEM_MODEM, "", "", + NM_TYPE_MODEM, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_CAPABILITIES] = + g_param_spec_uint (NM_DEVICE_MODEM_CAPABILITIES, "", "", + 0, G_MAXUINT32, NM_DEVICE_MODEM_CAPABILITY_NONE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_CURRENT_CAPABILITIES] = + g_param_spec_uint (NM_DEVICE_MODEM_CURRENT_CAPABILITIES, "", "", + 0, G_MAXUINT32, NM_DEVICE_MODEM_CAPABILITY_NONE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (mclass), NMDBUS_TYPE_DEVICE_MODEM_SKELETON, diff --git a/src/devices/wwan/nm-device-modem.h b/src/devices/wwan/nm-device-modem.h index 1cf399e12c..fe53de62c4 100644 --- a/src/devices/wwan/nm-device-modem.h +++ b/src/devices/wwan/nm-device-modem.h @@ -35,14 +35,8 @@ #define NM_DEVICE_MODEM_CAPABILITIES "modem-capabilities" #define NM_DEVICE_MODEM_CURRENT_CAPABILITIES "current-capabilities" -typedef struct { - NMDevice parent; -} NMDeviceModem; - -typedef struct { - NMDeviceClass parent; - -} NMDeviceModemClass; +typedef struct _NMDeviceModem NMDeviceModem; +typedef struct _NMDeviceModemClass NMDeviceModemClass; GType nm_device_modem_get_type (void); diff --git a/src/devices/wwan/nm-modem-broadband.c b/src/devices/wwan/nm-modem-broadband.c index e3681c01ff..f5f12a03df 100644 --- a/src/devices/wwan/nm-modem-broadband.c +++ b/src/devices/wwan/nm-modem-broadband.c @@ -20,27 +20,39 @@ #include "nm-default.h" +#include "nm-modem-broadband.h" + #include <string.h> #include <arpa/inet.h> #include <libmm-glib.h> -#include "nm-modem-broadband.h" #include "nm-core-internal.h" #include "NetworkManagerUtils.h" #include "nm-device-private.h" #include "nm-platform.h" +#include "nm-ip4-config.h" +#include "nm-ip6-config.h" #define NM_MODEM_BROADBAND_MODEM "modem" -G_DEFINE_TYPE (NMModemBroadband, nm_modem_broadband, NM_TYPE_MODEM) +#define MODEM_CAPS_3GPP(caps) (caps & (MM_MODEM_CAPABILITY_GSM_UMTS | \ + MM_MODEM_CAPABILITY_LTE | \ + MM_MODEM_CAPABILITY_LTE_ADVANCED)) + +#define MODEM_CAPS_3GPP2(caps) (caps & (MM_MODEM_CAPABILITY_CDMA_EVDO)) + +/* Maximum time to keep the DBus call waiting for a connection result */ +#define MODEM_CONNECT_TIMEOUT_SECS 120 + +/*****************************************************************************/ typedef enum { - CONNECT_STEP_FIRST, - CONNECT_STEP_WAIT_FOR_SIM, - CONNECT_STEP_UNLOCK, - CONNECT_STEP_WAIT_FOR_READY, - CONNECT_STEP_CONNECT, - CONNECT_STEP_LAST + CONNECT_STEP_FIRST, + CONNECT_STEP_WAIT_FOR_SIM, + CONNECT_STEP_UNLOCK, + CONNECT_STEP_WAIT_FOR_READY, + CONNECT_STEP_CONNECT, + CONNECT_STEP_LAST, } ConnectStep; typedef struct { @@ -57,7 +69,13 @@ typedef struct { GError *first_error; } ConnectContext; -struct _NMModemBroadbandPrivate { +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_MODEM, +); + +typedef struct { /* The modem object from dbus */ MMObject *modem_object; /* Per-interface objects */ @@ -73,21 +91,20 @@ struct _NMModemBroadbandPrivate { MMBearerIpConfig *ipv6_config; guint32 pin_tries; -}; +} NMModemBroadbandPrivate; -enum { - PROP_0, - PROP_MODEM, +struct _NMModemBroadband { + NMModem parent; + NMModemBroadbandPrivate _priv; }; -#define MODEM_CAPS_3GPP(caps) (caps & (MM_MODEM_CAPABILITY_GSM_UMTS | \ - MM_MODEM_CAPABILITY_LTE | \ - MM_MODEM_CAPABILITY_LTE_ADVANCED)) +struct _NMModemBroadbandClass { + NMModemClass parent; +}; -#define MODEM_CAPS_3GPP2(caps) (caps & (MM_MODEM_CAPABILITY_CDMA_EVDO)) +G_DEFINE_TYPE (NMModemBroadband, nm_modem_broadband, NM_TYPE_MODEM) -/* Maximum time to keep the DBus call waiting for a connection result */ -#define MODEM_CONNECT_TIMEOUT_SECS 120 +#define NM_MODEM_BROADBAND_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMModemBroadband, NM_IS_MODEM_BROADBAND) /*****************************************************************************/ @@ -172,7 +189,7 @@ get_capabilities (NMModem *_self, /* For now, we don't care about the capability combinations, just merge all * combinations in a single mask */ - if (mm_modem_get_supported_capabilities (self->priv->modem_iface, &supported, &n_supported)) { + if (mm_modem_get_supported_capabilities (self->_priv.modem_iface, &supported, &n_supported)) { guint i; for (i = 0; i < n_supported; i++) @@ -182,7 +199,7 @@ get_capabilities (NMModem *_self, } *modem_caps = (NMDeviceModemCapabilities) all_supported; - *current_caps = (NMDeviceModemCapabilities) mm_modem_get_current_capabilities (self->priv->modem_iface); + *current_caps = (NMDeviceModemCapabilities) mm_modem_get_current_capabilities (self->_priv.modem_iface); } static gboolean @@ -193,7 +210,7 @@ owns_port (NMModem *_self, const char *iface) guint n_ports = 0, i; gboolean owns = FALSE; - mm_modem_peek_ports (self->priv->modem_iface, &ports, &n_ports); + mm_modem_peek_ports (self->_priv.modem_iface, &ports, &n_ports); for (i = 0; i < n_ports && !owns; i++) owns = (g_strcmp0 (iface, ports[i].name) == 0); return owns; @@ -206,7 +223,7 @@ ask_for_pin (NMModemBroadband *self) { guint32 tries; - tries = self->priv->pin_tries++; + tries = self->_priv.pin_tries++; nm_modem_get_secrets (NM_MODEM (self), NM_SETTING_GSM_SETTING_NAME, tries ? TRUE : FALSE, @@ -312,8 +329,8 @@ create_gsm_connect_properties (NMConnection *connection) static void connect_context_clear (NMModemBroadband *self) { - if (self->priv->ctx) { - ConnectContext *ctx = self->priv->ctx; + if (self->_priv.ctx) { + ConnectContext *ctx = self->_priv.ctx; g_clear_error (&ctx->first_error); g_clear_pointer (&ctx->ip_types, (GDestroyNotify) g_array_unref); @@ -322,7 +339,7 @@ connect_context_clear (NMModemBroadband *self) g_clear_object (&ctx->connect_properties); g_clear_object (&ctx->self); g_slice_free (ConnectContext, ctx); - self->priv->ctx = NULL; + self->_priv.ctx = NULL; } } @@ -333,20 +350,20 @@ connect_ready (MMModemSimple *simple_iface, GAsyncResult *res, NMModemBroadband *self) { - ConnectContext *ctx = self->priv->ctx; + ConnectContext *ctx = self->_priv.ctx; GError *error = NULL; NMModemIPMethod ip4_method = NM_MODEM_IP_METHOD_UNKNOWN; NMModemIPMethod ip6_method = NM_MODEM_IP_METHOD_UNKNOWN; - self->priv->bearer = mm_modem_simple_connect_finish (simple_iface, res, &error); + self->_priv.bearer = mm_modem_simple_connect_finish (simple_iface, res, &error); if (!ctx) return; - if (!self->priv->bearer) { + if (!self->_priv.bearer) { if (g_error_matches (error, MM_MOBILE_EQUIPMENT_ERROR, MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN) || (g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_UNAUTHORIZED) && - mm_modem_get_unlock_required (self->priv->modem_iface) == MM_MODEM_LOCK_SIM_PIN)) { + mm_modem_get_unlock_required (self->_priv.modem_iface) == MM_MODEM_LOCK_SIM_PIN)) { g_error_free (error); /* Request PIN */ @@ -379,13 +396,13 @@ connect_ready (MMModemSimple *simple_iface, } /* Grab IP configurations */ - self->priv->ipv4_config = mm_bearer_get_ipv4_config (self->priv->bearer); - if (self->priv->ipv4_config) - ip4_method = get_bearer_ip_method (self->priv->ipv4_config); + self->_priv.ipv4_config = mm_bearer_get_ipv4_config (self->_priv.bearer); + if (self->_priv.ipv4_config) + ip4_method = get_bearer_ip_method (self->_priv.ipv4_config); - self->priv->ipv6_config = mm_bearer_get_ipv6_config (self->priv->bearer); - if (self->priv->ipv6_config) - ip6_method = get_bearer_ip_method (self->priv->ipv6_config); + self->_priv.ipv6_config = mm_bearer_get_ipv6_config (self->_priv.bearer); + if (self->_priv.ipv6_config) + ip6_method = get_bearer_ip_method (self->_priv.ipv6_config); if (ip4_method == NM_MODEM_IP_METHOD_UNKNOWN && ip6_method == NM_MODEM_IP_METHOD_UNKNOWN) { @@ -396,10 +413,10 @@ connect_ready (MMModemSimple *simple_iface, } g_object_set (self, - NM_MODEM_DATA_PORT, mm_bearer_get_interface (self->priv->bearer), + NM_MODEM_DATA_PORT, mm_bearer_get_interface (self->_priv.bearer), NM_MODEM_IP4_METHOD, ip4_method, NM_MODEM_IP6_METHOD, ip6_method, - NM_MODEM_IP_TIMEOUT, mm_bearer_get_ip_timeout (self->priv->bearer), + NM_MODEM_IP_TIMEOUT, mm_bearer_get_ip_timeout (self->_priv.bearer), NULL); ctx->step++; @@ -416,13 +433,13 @@ send_pin_ready (MMSim *sim, GAsyncResult *result, NMModemBroadband *self) if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) return; - if (!self->priv->ctx || self->priv->ctx->step != CONNECT_STEP_UNLOCK) + if (!self->_priv.ctx || self->_priv.ctx->step != CONNECT_STEP_UNLOCK) g_return_if_reached (); if (error) { if (g_error_matches (error, MM_MOBILE_EQUIPMENT_ERROR, MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN) || (g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_UNAUTHORIZED) && - mm_modem_get_unlock_required (self->priv->modem_iface) == MM_MODEM_LOCK_SIM_PIN)) { + mm_modem_get_unlock_required (self->_priv.modem_iface) == MM_MODEM_LOCK_SIM_PIN)) { ask_for_pin (self); } else { g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, FALSE, translate_mm_error (self, error)); @@ -430,14 +447,14 @@ send_pin_ready (MMSim *sim, GAsyncResult *result, NMModemBroadband *self) return; } - self->priv->ctx->step++; + self->_priv.ctx->step++; connect_context_step (self); } static void connect_context_step (NMModemBroadband *self) { - ConnectContext *ctx = self->priv->ctx; + ConnectContext *ctx = self->_priv.ctx; switch (ctx->step) { case CONNECT_STEP_FIRST: @@ -445,7 +462,7 @@ connect_context_step (NMModemBroadband *self) /* fall through */ case CONNECT_STEP_WAIT_FOR_SIM: - if (MODEM_CAPS_3GPP (ctx->caps) && !self->priv->sim_iface) { + if (MODEM_CAPS_3GPP (ctx->caps) && !self->_priv.sim_iface) { /* Have to wait for the SIM to show up */ break; } @@ -454,13 +471,13 @@ connect_context_step (NMModemBroadband *self) case CONNECT_STEP_UNLOCK: if ( MODEM_CAPS_3GPP (ctx->caps) - && mm_modem_get_unlock_required (self->priv->modem_iface) == MM_MODEM_LOCK_SIM_PIN) { + && mm_modem_get_unlock_required (self->_priv.modem_iface) == MM_MODEM_LOCK_SIM_PIN) { NMSettingGsm *s_gsm = nm_connection_get_setting_gsm (ctx->connection); const char *pin = nm_setting_gsm_get_pin (s_gsm); /* If we have a PIN already, send it. If we don't, get it. */ if (pin) { - mm_sim_send_pin (self->priv->sim_iface, + mm_sim_send_pin (self->_priv.sim_iface, pin, ctx->cancellable, (GAsyncReadyCallback) send_pin_ready, @@ -476,7 +493,7 @@ connect_context_step (NMModemBroadband *self) case CONNECT_STEP_WAIT_FOR_READY: { GError *error = NULL; - if (mm_modem_get_state (self->priv->modem_iface) <= MM_MODEM_STATE_LOCKED) + if (mm_modem_get_state (self->_priv.modem_iface) <= MM_MODEM_STATE_LOCKED) break; /* Create core connect properties based on the modem capabilities */ @@ -532,7 +549,7 @@ connect_context_step (NMModemBroadband *self) nm_modem_ip_type_to_string (current), ctx->ip_type_tries + 1); - mm_modem_simple_connect (self->priv->simple_iface, + mm_modem_simple_connect (self->_priv.simple_iface, ctx->connect_properties, NULL, (GAsyncReadyCallback) connect_ready, @@ -544,7 +561,7 @@ connect_context_step (NMModemBroadband *self) /* fall through */ case CONNECT_STEP_LAST: - if (self->priv->ipv4_config || self->priv->ipv6_config) { + if (self->_priv.ipv4_config || self->_priv.ipv6_config) { g_signal_emit_by_name (self, NM_MODEM_PREPARE_RESULT, TRUE, NM_DEVICE_STATE_REASON_NONE); } else { /* If we have a saved error from a previous attempt, use it */ @@ -571,9 +588,9 @@ act_stage1_prepare (NMModem *_self, NMModemBroadband *self = NM_MODEM_BROADBAND (_self); /* Make sure we can get the Simple interface from the modem */ - if (!self->priv->simple_iface) { - self->priv->simple_iface = mm_object_get_modem_simple (self->priv->modem_object); - if (!self->priv->simple_iface) { + if (!self->_priv.simple_iface) { + self->_priv.simple_iface = mm_object_get_modem_simple (self->_priv.modem_object); + if (!self->_priv.simple_iface) { _LOGW ("cannot access the Simple mobile broadband modem interface"); *reason = NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED; return NM_ACT_STAGE_RETURN_FAILURE; @@ -583,12 +600,12 @@ act_stage1_prepare (NMModem *_self, connect_context_clear (self); /* Allocate new context for this connect stage attempt */ - self->priv->ctx = g_slice_new0 (ConnectContext); - self->priv->ctx->caps = mm_modem_get_current_capabilities (self->priv->modem_iface); - self->priv->ctx->cancellable = g_cancellable_new (); - self->priv->ctx->connection = g_object_ref (connection); + self->_priv.ctx = g_slice_new0 (ConnectContext); + self->_priv.ctx->caps = mm_modem_get_current_capabilities (self->_priv.modem_iface); + self->_priv.ctx->cancellable = g_cancellable_new (); + self->_priv.ctx->connection = g_object_ref (connection); - g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (self->priv->simple_iface), MODEM_CONNECT_TIMEOUT_SECS * 1000); + g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (self->_priv.simple_iface), MODEM_CONNECT_TIMEOUT_SECS * 1000); connect_context_step (self); return NM_ACT_STAGE_RETURN_POSTPONE; @@ -603,7 +620,7 @@ check_connection_compatible (NMModem *_self, NMConnection *connection) MMModemCapability modem_caps; NMSettingConnection *s_con; - modem_caps = mm_modem_get_current_capabilities (self->priv->modem_iface); + modem_caps = mm_modem_get_current_capabilities (self->_priv.modem_iface); s_con = nm_connection_get_setting_connection (connection); g_assert (s_con); @@ -650,7 +667,7 @@ complete_connection (NMModem *_self, MMModemCapability modem_caps; NMSettingPpp *s_ppp; - modem_caps = mm_modem_get_current_capabilities (self->priv->modem_iface); + modem_caps = mm_modem_get_current_capabilities (self->_priv.modem_iface); /* PPP settings common to 3GPP and 3GPP2 */ s_ppp = nm_connection_get_setting_ppp (connection); @@ -827,12 +844,12 @@ set_mm_enabled (NMModem *_self, NMModemBroadband *self = NM_MODEM_BROADBAND (_self); if (enabled) { - mm_modem_enable (self->priv->modem_iface, + mm_modem_enable (self->_priv.modem_iface, NULL, /* cancellable */ (GAsyncReadyCallback)modem_enable_ready, g_object_ref (self)); } else { - mm_modem_disable (self->priv->modem_iface, + mm_modem_disable (self->_priv.modem_iface, NULL, /* cancellable */ (GAsyncReadyCallback)modem_disable_ready, g_object_ref (self)); @@ -871,13 +888,13 @@ static_stage3_ip4_done (NMModemBroadband *self) const gchar **dns; guint i; - g_assert (self->priv->ipv4_config); - g_assert (self->priv->bearer); + g_assert (self->_priv.ipv4_config); + g_assert (self->_priv.bearer); _LOGI ("IPv4 static configuration:"); /* Fully fail if invalid IP address retrieved */ - address_string = mm_bearer_ip_config_get_address (self->priv->ipv4_config); + address_string = mm_bearer_ip_config_get_address (self->_priv.ipv4_config); if (!ip4_string_to_num (address_string, &address_network)) { error = g_error_new (NM_DEVICE_ERROR, NM_DEVICE_ERROR_INVALID_CONNECTION, @@ -888,17 +905,17 @@ static_stage3_ip4_done (NMModemBroadband *self) } /* Missing gateway not a hard failure */ - gw_string = mm_bearer_ip_config_get_gateway (self->priv->ipv4_config); + gw_string = mm_bearer_ip_config_get_gateway (self->_priv.ipv4_config); ip4_string_to_num (gw_string, &gw); - data_port = mm_bearer_get_interface (self->priv->bearer); + data_port = mm_bearer_get_interface (self->_priv.bearer); g_assert (data_port); config = nm_ip4_config_new (nm_platform_link_get_ifindex (NM_PLATFORM_GET, data_port)); memset (&address, 0, sizeof (address)); address.address = address_network; address.peer_address = address_network; - address.plen = mm_bearer_ip_config_get_prefix (self->priv->ipv4_config); + address.plen = mm_bearer_ip_config_get_prefix (self->_priv.ipv4_config); address.addr_source = NM_IP_CONFIG_SOURCE_WWAN; if (address.plen <= 32) nm_ip4_config_add_address (config, &address); @@ -911,7 +928,7 @@ static_stage3_ip4_done (NMModemBroadband *self) } /* DNS servers */ - dns = mm_bearer_ip_config_get_dns (self->priv->ipv4_config); + dns = mm_bearer_ip_config_get_dns (self->_priv.ipv4_config); for (i = 0; dns && dns[i]; i++) { if ( ip4_string_to_num (dns[i], &address_network) && address_network > 0) { @@ -955,13 +972,13 @@ stage3_ip6_done (NMModemBroadband *self) const gchar **dns; guint i; - g_assert (self->priv->ipv6_config); + g_assert (self->_priv.ipv6_config); memset (&address, 0, sizeof (address)); - ip_method = get_bearer_ip_method (self->priv->ipv6_config); + ip_method = get_bearer_ip_method (self->_priv.ipv6_config); - address_string = mm_bearer_ip_config_get_address (self->priv->ipv6_config); + address_string = mm_bearer_ip_config_get_address (self->_priv.ipv6_config); if (!address_string) { /* DHCP/SLAAC is allowed to skip addresses; other methods require it */ if (ip_method != NM_MODEM_IP_METHOD_AUTO) { @@ -985,17 +1002,17 @@ stage3_ip6_done (NMModemBroadband *self) _LOGI ("IPv6 base configuration:"); - data_port = mm_bearer_get_interface (self->priv->bearer); + data_port = mm_bearer_get_interface (self->_priv.bearer); g_assert (data_port); config = nm_ip6_config_new (nm_platform_link_get_ifindex (NM_PLATFORM_GET, data_port)); - address.plen = mm_bearer_ip_config_get_prefix (self->priv->ipv6_config); + address.plen = mm_bearer_ip_config_get_prefix (self->_priv.ipv6_config); if (address.plen <= 128) nm_ip6_config_add_address (config, &address); _LOGI (" address %s/%d", address_string, address.plen); - address_string = mm_bearer_ip_config_get_gateway (self->priv->ipv6_config); + address_string = mm_bearer_ip_config_get_gateway (self->_priv.ipv6_config); if (address_string) { if (!inet_pton (AF_INET6, address_string, (void *) &(address.address))) { error = g_error_new (NM_DEVICE_ERROR, @@ -1017,7 +1034,7 @@ stage3_ip6_done (NMModemBroadband *self) } /* DNS servers */ - dns = mm_bearer_ip_config_get_dns (self->priv->ipv6_config); + dns = mm_bearer_ip_config_get_dns (self->_priv.ipv6_config); for (i = 0; dns[i]; i++) { struct in6_addr addr; @@ -1125,14 +1142,14 @@ disconnect (NMModem *modem, } /* If no simple iface, we're done */ - if (!ctx->self->priv->simple_iface) { + if (!ctx->self->_priv.simple_iface) { disconnect_context_complete (ctx); return; } _LOGD ("notifying ModemManager about the modem disconnection"); ctx->cancellable = cancellable ? g_object_ref (cancellable) : NULL; - mm_modem_simple_disconnect (ctx->self->priv->simple_iface, + mm_modem_simple_disconnect (ctx->self->_priv.simple_iface, NULL, /* bearer path; if NULL given ALL get disconnected */ cancellable, (GAsyncReadyCallback) simple_disconnect_ready, @@ -1149,11 +1166,11 @@ deactivate_cleanup (NMModem *_self, NMDevice *device) /* TODO: cancel SimpleConnect() if any */ /* Cleanup IPv4 addresses and routes */ - g_clear_object (&self->priv->ipv4_config); - g_clear_object (&self->priv->ipv6_config); - g_clear_object (&self->priv->bearer); + g_clear_object (&self->_priv.ipv4_config); + g_clear_object (&self->_priv.ipv6_config); + g_clear_object (&self->_priv.bearer); - self->priv->pin_tries = 0; + self->_priv.pin_tries = 0; /* Chain up parent's */ NM_MODEM_CLASS (nm_modem_broadband_parent_class)->deactivate_cleanup (_self, device); @@ -1202,7 +1219,7 @@ modem_state_changed (MMModem *modem, mm_state_to_nm (new_state), mm_modem_state_change_reason_get_string (reason)); - if (self->priv->ctx && self->priv->ctx->step == CONNECT_STEP_WAIT_FOR_READY) + if (self->_priv.ctx && self->_priv.ctx->step == CONNECT_STEP_WAIT_FOR_READY) connect_context_step (self); } @@ -1223,40 +1240,6 @@ mm_ip_family_to_nm (MMBearerIpFamily family) return nm_type; } -NMModem * -nm_modem_broadband_new (GObject *object, GError **error) -{ - NMModem *modem; - MMObject *modem_object; - MMModem *modem_iface; - gchar *drivers; - - g_return_val_if_fail (MM_IS_OBJECT (object), NULL); - modem_object = MM_OBJECT (object); - - /* Ensure we have the 'Modem' interface and the primary port at least */ - modem_iface = mm_object_peek_modem (modem_object); - g_return_val_if_fail (!!modem_iface, NULL); - g_return_val_if_fail (!!mm_modem_get_primary_port (modem_iface), NULL); - - /* Build a single string with all drivers listed */ - drivers = g_strjoinv (", ", (gchar **)mm_modem_get_drivers (modem_iface)); - - modem = g_object_new (NM_TYPE_MODEM_BROADBAND, - NM_MODEM_PATH, mm_object_get_path (modem_object), - NM_MODEM_UID, mm_modem_get_primary_port (modem_iface), - NM_MODEM_CONTROL_PORT, mm_modem_get_primary_port (modem_iface), - NM_MODEM_DATA_PORT, NULL, /* We don't know it until bearer created */ - NM_MODEM_IP_TYPES, mm_ip_family_to_nm (mm_modem_get_supported_ip_families (modem_iface)), - NM_MODEM_STATE, mm_state_to_nm (mm_modem_get_state (modem_iface)), - NM_MODEM_DEVICE_ID, mm_modem_get_device_identifier (modem_iface), - NM_MODEM_BROADBAND_MODEM, modem_object, - NM_MODEM_DRIVER, drivers, - NULL); - g_free (drivers); - return modem; -} - static void get_sim_ready (MMModem *modem, GAsyncResult *res, @@ -1267,20 +1250,20 @@ get_sim_ready (MMModem *modem, new_sim = mm_modem_get_sim_finish (modem, res, &error); - if (new_sim != self->priv->sim_iface) { - g_clear_object (&self->priv->sim_iface); - self->priv->sim_iface = new_sim; + if (new_sim != self->_priv.sim_iface) { + g_clear_object (&self->_priv.sim_iface); + self->_priv.sim_iface = new_sim; } else g_clear_object (&new_sim); - if (self->priv->sim_iface) { + if (self->_priv.sim_iface) { g_object_set (G_OBJECT (self), - NM_MODEM_SIM_ID, mm_sim_get_identifier (self->priv->sim_iface), - NM_MODEM_SIM_OPERATOR_ID, mm_sim_get_operator_identifier (self->priv->sim_iface), + NM_MODEM_SIM_ID, mm_sim_get_identifier (self->_priv.sim_iface), + NM_MODEM_SIM_OPERATOR_ID, mm_sim_get_operator_identifier (self->_priv.sim_iface), NULL); /* If we're waiting for the SIM during a connect, proceed with the connect */ - if (self->priv->ctx && self->priv->ctx->step == CONNECT_STEP_WAIT_FOR_SIM) + if (self->_priv.ctx && self->_priv.ctx->step == CONNECT_STEP_WAIT_FOR_SIM) connect_context_step (self); } else { _NMLOG (g_error_matches (error, MM_CORE_ERROR, MM_CORE_ERROR_NOT_FOUND) @@ -1297,10 +1280,10 @@ sim_changed (MMModem *modem, GParamSpec *pspec, gpointer user_data) { NMModemBroadband *self = NM_MODEM_BROADBAND (user_data); - g_return_if_fail (modem == self->priv->modem_iface); + g_return_if_fail (modem == self->_priv.modem_iface); - if (mm_modem_get_sim_path (self->priv->modem_iface)) { - mm_modem_get_sim (self->priv->modem_iface, + if (mm_modem_get_sim_path (self->_priv.modem_iface)) { + mm_modem_get_sim (self->_priv.modem_iface, NULL, /* cancellable */ (GAsyncReadyCallback) get_sim_ready, g_object_ref (self)); @@ -1316,7 +1299,7 @@ supported_ip_families_changed (MMModem *modem, GParamSpec *pspec, gpointer user_ { NMModemBroadband *self = NM_MODEM_BROADBAND (user_data); - g_return_if_fail (modem == self->priv->modem_iface); + g_return_if_fail (modem == self->_priv.modem_iface); g_object_set (G_OBJECT (self), NM_MODEM_IP_TYPES, @@ -1324,12 +1307,24 @@ supported_ip_families_changed (MMModem *modem, GParamSpec *pspec, gpointer user_ NULL); } +/*****************************************************************************/ + static void -nm_modem_broadband_init (NMModemBroadband *self) +get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) { - self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, - NM_TYPE_MODEM_BROADBAND, - NMModemBroadbandPrivate); + NMModemBroadband *self = NM_MODEM_BROADBAND (object); + + switch (prop_id) { + case PROP_MODEM: + g_value_set_object (value, self->_priv.modem_object); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } } static void @@ -1343,19 +1338,19 @@ set_property (GObject *object, switch (prop_id) { case PROP_MODEM: /* construct-only */ - self->priv->modem_object = g_value_dup_object (value); - self->priv->modem_iface = mm_object_get_modem (self->priv->modem_object); - g_assert (self->priv->modem_iface != NULL); - g_signal_connect (self->priv->modem_iface, + self->_priv.modem_object = g_value_dup_object (value); + self->_priv.modem_iface = mm_object_get_modem (self->_priv.modem_object); + g_assert (self->_priv.modem_iface != NULL); + g_signal_connect (self->_priv.modem_iface, "state-changed", G_CALLBACK (modem_state_changed), self); - g_signal_connect (self->priv->modem_iface, + g_signal_connect (self->_priv.modem_iface, "notify::sim", G_CALLBACK (sim_changed), self); - sim_changed (self->priv->modem_iface, NULL, self); - g_signal_connect (self->priv->modem_iface, + sim_changed (self->_priv.modem_iface, NULL, self); + g_signal_connect (self->_priv.modem_iface, "notify::supported-ip-families", G_CALLBACK (supported_ip_families_changed), self); @@ -1369,22 +1364,45 @@ set_property (GObject *object, } } +/*****************************************************************************/ + static void -get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) +nm_modem_broadband_init (NMModemBroadband *self) { - NMModemBroadband *self = NM_MODEM_BROADBAND (object); +} - switch (prop_id) { - case PROP_MODEM: - g_value_set_object (value, self->priv->modem_object); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } +NMModem * +nm_modem_broadband_new (GObject *object, GError **error) +{ + NMModem *modem; + MMObject *modem_object; + MMModem *modem_iface; + gchar *drivers; + + g_return_val_if_fail (MM_IS_OBJECT (object), NULL); + modem_object = MM_OBJECT (object); + + /* Ensure we have the 'Modem' interface and the primary port at least */ + modem_iface = mm_object_peek_modem (modem_object); + g_return_val_if_fail (!!modem_iface, NULL); + g_return_val_if_fail (!!mm_modem_get_primary_port (modem_iface), NULL); + + /* Build a single string with all drivers listed */ + drivers = g_strjoinv (", ", (gchar **)mm_modem_get_drivers (modem_iface)); + + modem = g_object_new (NM_TYPE_MODEM_BROADBAND, + NM_MODEM_PATH, mm_object_get_path (modem_object), + NM_MODEM_UID, mm_modem_get_primary_port (modem_iface), + NM_MODEM_CONTROL_PORT, mm_modem_get_primary_port (modem_iface), + NM_MODEM_DATA_PORT, NULL, /* We don't know it until bearer created */ + NM_MODEM_IP_TYPES, mm_ip_family_to_nm (mm_modem_get_supported_ip_families (modem_iface)), + NM_MODEM_STATE, mm_state_to_nm (mm_modem_get_state (modem_iface)), + NM_MODEM_DEVICE_ID, mm_modem_get_device_identifier (modem_iface), + NM_MODEM_BROADBAND_MODEM, modem_object, + NM_MODEM_DRIVER, drivers, + NULL); + g_free (drivers); + return modem; } static void @@ -1393,13 +1411,13 @@ dispose (GObject *object) NMModemBroadband *self = NM_MODEM_BROADBAND (object); connect_context_clear (self); - g_clear_object (&self->priv->ipv4_config); - g_clear_object (&self->priv->ipv6_config); - g_clear_object (&self->priv->bearer); - g_clear_object (&self->priv->modem_iface); - g_clear_object (&self->priv->simple_iface); - g_clear_object (&self->priv->sim_iface); - g_clear_object (&self->priv->modem_object); + g_clear_object (&self->_priv.ipv4_config); + g_clear_object (&self->_priv.ipv6_config); + g_clear_object (&self->_priv.bearer); + g_clear_object (&self->_priv.modem_iface); + g_clear_object (&self->_priv.simple_iface); + g_clear_object (&self->_priv.sim_iface); + g_clear_object (&self->_priv.modem_object); G_OBJECT_CLASS (nm_modem_broadband_parent_class)->dispose (object); } @@ -1410,9 +1428,6 @@ nm_modem_broadband_class_init (NMModemBroadbandClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); NMModemClass *modem_class = NM_MODEM_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMModemBroadbandPrivate)); - - /* Virtual methods */ object_class->dispose = dispose; object_class->get_property = get_property; object_class->set_property = set_property; @@ -1430,11 +1445,11 @@ nm_modem_broadband_class_init (NMModemBroadbandClass *klass) modem_class->act_stage1_prepare = act_stage1_prepare; modem_class->owns_port = owns_port; - /* Properties */ - g_object_class_install_property - (object_class, PROP_MODEM, - g_param_spec_object (NM_MODEM_BROADBAND_MODEM, "", "", - MM_GDBUS_TYPE_OBJECT, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MODEM] = + g_param_spec_object (NM_MODEM_BROADBAND_MODEM, "", "", + MM_GDBUS_TYPE_OBJECT, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); } diff --git a/src/devices/wwan/nm-modem-broadband.h b/src/devices/wwan/nm-modem-broadband.h index 6607f7f553..4948cb3b75 100644 --- a/src/devices/wwan/nm-modem-broadband.h +++ b/src/devices/wwan/nm-modem-broadband.h @@ -30,18 +30,8 @@ #define NM_IS_MODEM_BROADBAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_MODEM_BROADBAND)) #define NM_MODEM_BROADBAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_MODEM_BROADBAND, NMModemBroadbandClass)) -typedef struct _NMModemBroadband NMModemBroadband; -typedef struct _NMModemBroadbandClass NMModemBroadbandClass; -typedef struct _NMModemBroadbandPrivate NMModemBroadbandPrivate; - -struct _NMModemBroadband { - NMModem parent; - NMModemBroadbandPrivate *priv; -}; - -struct _NMModemBroadbandClass { - NMModemClass parent; -}; +typedef struct _NMModemBroadband NMModemBroadband; +typedef struct _NMModemBroadbandClass NMModemBroadbandClass; GType nm_modem_broadband_get_type (void); diff --git a/src/devices/wwan/nm-modem-manager.c b/src/devices/wwan/nm-modem-manager.c index 964485fc34..b1f6d92e7f 100644 --- a/src/devices/wwan/nm-modem-manager.c +++ b/src/devices/wwan/nm-modem-manager.c @@ -43,9 +43,16 @@ #define MODEM_POKE_INTERVAL 120 -G_DEFINE_TYPE (NMModemManager, nm_modem_manager, G_TYPE_OBJECT) +/*****************************************************************************/ -struct _NMModemManagerPrivate { +enum { + MODEM_ADDED, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +typedef struct { GDBusConnection *dbus_connection; MMManager *modem_manager; guint mm_launch_id; @@ -57,17 +64,23 @@ struct _NMModemManagerPrivate { GDBusProxy *ofono_proxy; #endif - /* Common */ GHashTable *modems; +} NMModemManagerPrivate; + +struct _NMModemManager { + GObject parent; + NMModemManagerPrivate _priv; }; -enum { - MODEM_ADDED, - LAST_SIGNAL, +struct _NMModemManagerClass { + GObjectClass parent; }; -static guint signals[LAST_SIGNAL] = { 0 }; -/************************************************************************/ +G_DEFINE_TYPE (NMModemManager, nm_modem_manager, G_TYPE_OBJECT) + +#define NM_MODEM_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMModemManager, NM_IS_MODEM_MANAGER) + +/*****************************************************************************/ static void handle_new_modem (NMModemManager *self, NMModem *modem) @@ -75,13 +88,13 @@ handle_new_modem (NMModemManager *self, NMModem *modem) const char *path; path = nm_modem_get_path (modem); - if (g_hash_table_lookup (self->priv->modems, path)) { + if (g_hash_table_lookup (self->_priv.modems, path)) { g_warn_if_reached (); return; } /* Track the new modem */ - g_hash_table_insert (self->priv->modems, g_strdup (path), modem); + g_hash_table_insert (self->_priv.modems, g_strdup (path), modem); g_signal_emit (self, signals[MODEM_ADDED], 0, modem); } @@ -95,12 +108,12 @@ remove_one_modem (gpointer key, gpointer value, gpointer user_data) static void clear_modem_manager (NMModemManager *self) { - if (!self->priv->modem_manager) + if (!self->_priv.modem_manager) return; - nm_clear_g_signal_handler (self->priv->modem_manager, &self->priv->mm_name_owner_changed_id); - nm_clear_g_signal_handler (self->priv->modem_manager, &self->priv->mm_object_added_id); - nm_clear_g_signal_handler (self->priv->modem_manager, &self->priv->mm_object_removed_id); - g_clear_object (&self->priv->modem_manager); + nm_clear_g_signal_handler (self->_priv.modem_manager, &self->_priv.mm_name_owner_changed_id); + nm_clear_g_signal_handler (self->_priv.modem_manager, &self->_priv.mm_object_added_id); + nm_clear_g_signal_handler (self->_priv.modem_manager, &self->_priv.mm_object_removed_id); + g_clear_object (&self->_priv.modem_manager); } static void @@ -115,7 +128,7 @@ modem_object_added (MMManager *modem_manager, /* Ensure we don't have the same modem already */ path = mm_object_get_path (modem_object); - if (g_hash_table_lookup (self->priv->modems, path)) { + if (g_hash_table_lookup (self->_priv.modems, path)) { nm_log_warn (LOGD_MB, "modem with path %s already exists, ignoring", path); return; } @@ -153,12 +166,12 @@ modem_object_removed (MMManager *manager, const gchar *path; path = mm_object_get_path (modem_object); - modem = (NMModem *) g_hash_table_lookup (self->priv->modems, path); + modem = (NMModem *) g_hash_table_lookup (self->_priv.modems, path); if (!modem) return; nm_modem_emit_removed (modem); - g_hash_table_remove (self->priv->modems, path); + g_hash_table_remove (self->_priv.modems, path); } static void @@ -169,9 +182,9 @@ modem_manager_available (NMModemManager *self) nm_log_info (LOGD_MB, "ModemManager available in the bus"); /* Update initial modems list */ - modems = g_dbus_object_manager_get_objects (G_DBUS_OBJECT_MANAGER (self->priv->modem_manager)); + modems = g_dbus_object_manager_get_objects (G_DBUS_OBJECT_MANAGER (self->_priv.modem_manager)); for (l = modems; l; l = g_list_next (l)) - modem_object_added (self->priv->modem_manager, MM_OBJECT (l->data), self); + modem_object_added (self->_priv.modem_manager, MM_OBJECT (l->data), self); g_list_free_full (modems, (GDestroyNotify) g_object_unref); } @@ -187,7 +200,7 @@ modem_manager_name_owner_changed (MMManager *modem_manager, gchar *name_owner; /* Quit poking, if any */ - nm_clear_g_source (&self->priv->mm_launch_id); + nm_clear_g_source (&self->_priv.mm_launch_id); name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (modem_manager)); if (!name_owner) { @@ -226,7 +239,7 @@ ofono_create_modem (NMModemManager *self, const char *path) * receive ModemAdded signals before GetModems() returns, so some of the * modems returned from GetModems() may already have been created. */ - if (!g_hash_table_lookup (self->priv->modems, path)) { + if (!g_hash_table_lookup (self->_priv.modems, path)) { modem = nm_modem_ofono_new (path); if (modem) handle_new_modem (self, modem); @@ -256,10 +269,10 @@ ofono_signal_cb (GDBusProxy *proxy, g_variant_get (parameters, "(o)", &object_path); nm_log_info (LOGD_MB, "oFono modem removed: %s", object_path); - modem = (NMModem *) g_hash_table_lookup (self->priv->modems, object_path); + modem = (NMModem *) g_hash_table_lookup (self->_priv.modems, object_path); if (modem) { nm_modem_emit_removed (modem); - g_hash_table_remove (self->priv->modems, object_path); + g_hash_table_remove (self->_priv.modems, object_path); } else { nm_log_warn (LOGD_MB, "could not remove modem %s, not found in table", object_path); @@ -297,11 +310,11 @@ ofono_check_name_owner (NMModemManager *self) { gs_free char *name_owner = NULL; - name_owner = g_dbus_proxy_get_name_owner (G_DBUS_PROXY (self->priv->ofono_proxy)); + name_owner = g_dbus_proxy_get_name_owner (G_DBUS_PROXY (self->_priv.ofono_proxy)); if (name_owner) { nm_log_info (LOGD_MB, "oFono is now available"); - g_dbus_proxy_call (self->priv->ofono_proxy, + g_dbus_proxy_call (self->_priv.ofono_proxy, "GetModems", NULL, G_DBUS_CALL_FLAGS_NONE, @@ -316,7 +329,7 @@ ofono_check_name_owner (NMModemManager *self) nm_log_info (LOGD_MB, "oFono disappeared from bus"); /* Remove any oFono modems that might be left around */ - g_hash_table_iter_init (&iter, self->priv->modems); + g_hash_table_iter_init (&iter, self->_priv.modems); while (g_hash_table_iter_next (&iter, NULL, (gpointer) &modem)) { if (NM_IS_MODEM_OFONO (modem)) { nm_modem_emit_removed (modem); @@ -340,18 +353,18 @@ ofono_proxy_new_cb (GObject *source_object, GAsyncResult *res, gpointer user_dat gs_unref_object NMModemManager *self = NM_MODEM_MANAGER (user_data); gs_free_error GError *error = NULL; - self->priv->ofono_proxy = g_dbus_proxy_new_finish (res, &error); + self->_priv.ofono_proxy = g_dbus_proxy_new_finish (res, &error); if (error) { nm_log_warn (LOGD_MB, "error getting oFono bus proxy: %s", error->message); return; } - g_signal_connect (self->priv->ofono_proxy, + g_signal_connect (self->_priv.ofono_proxy, "notify::g-name-owner", G_CALLBACK (ofono_name_owner_changed), self); - g_signal_connect (self->priv->ofono_proxy, + g_signal_connect (self->_priv.ofono_proxy, "g-signal", G_CALLBACK (ofono_signal_cb), self); @@ -362,8 +375,8 @@ ofono_proxy_new_cb (GObject *source_object, GAsyncResult *res, gpointer user_dat static void ensure_ofono_client (NMModemManager *self) { - g_assert (self->priv->dbus_connection); - g_dbus_proxy_new (self->priv->dbus_connection, + g_assert (self->_priv.dbus_connection); + g_dbus_proxy_new (self->_priv.dbus_connection, G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, NULL, OFONO_DBUS_SERVICE, @@ -408,7 +421,7 @@ static void modem_manager_poke (NMModemManager *self) { /* If there is no current owner right away, ensure we poke to get one */ - g_dbus_connection_call (self->priv->dbus_connection, + g_dbus_connection_call (self->_priv.dbus_connection, "org.freedesktop.ModemManager1", "/org/freedesktop/ModemManager1", DBUS_INTERFACE_PEER, @@ -427,7 +440,7 @@ modem_manager_check_name_owner (NMModemManager *self) { gs_free gchar *name_owner = NULL; - name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (self->priv->modem_manager)); + name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (self->_priv.modem_manager)); if (name_owner) { /* Available! */ modem_manager_available (self); @@ -448,10 +461,10 @@ manager_new_ready (GObject *source, GError *error = NULL; - g_return_if_fail (!self->priv->modem_manager); + g_return_if_fail (!self->_priv.modem_manager); - self->priv->modem_manager = mm_manager_new_finish (res, &error); - if (!self->priv->modem_manager) { + self->_priv.modem_manager = mm_manager_new_finish (res, &error); + if (!self->_priv.modem_manager) { /* We're not really supposed to get any error here. If we do get one, * though, just re-schedule the MMManager creation after some time. * During this period, name-owner changes won't be followed. */ @@ -461,18 +474,18 @@ manager_new_ready (GObject *source, schedule_modem_manager_relaunch (self, MODEM_POKE_INTERVAL); } else { /* Setup signals in the GDBusObjectManagerClient */ - self->priv->mm_name_owner_changed_id = - g_signal_connect (self->priv->modem_manager, + self->_priv.mm_name_owner_changed_id = + g_signal_connect (self->_priv.modem_manager, "notify::name-owner", G_CALLBACK (modem_manager_name_owner_changed), self); - self->priv->mm_object_added_id = - g_signal_connect (self->priv->modem_manager, + self->_priv.mm_object_added_id = + g_signal_connect (self->_priv.modem_manager, "object-added", G_CALLBACK (modem_object_added), self); - self->priv->mm_object_removed_id = - g_signal_connect (self->priv->modem_manager, + self->_priv.mm_object_removed_id = + g_signal_connect (self->_priv.modem_manager, "object-removed", G_CALLBACK (modem_object_removed), self); @@ -487,13 +500,13 @@ manager_new_ready (GObject *source, static void ensure_modem_manager (NMModemManager *self) { - g_assert (self->priv->dbus_connection); + g_assert (self->_priv.dbus_connection); /* Create the GDBusObjectManagerClient. We do not request to autostart, as * we don't really want the MMManager creation to fail. We can always poke * later on if we want to request the autostart */ - if (!self->priv->modem_manager) { - mm_manager_new (self->priv->dbus_connection, + if (!self->_priv.modem_manager) { + mm_manager_new (self->_priv.dbus_connection, G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START, NULL, (GAsyncReadyCallback)manager_new_ready, @@ -508,7 +521,7 @@ ensure_modem_manager (NMModemManager *self) static gboolean mm_launch_cb (NMModemManager *self) { - self->priv->mm_launch_id = 0; + self->_priv.mm_launch_id = 0; ensure_modem_manager (self); return G_SOURCE_REMOVE; } @@ -520,9 +533,9 @@ schedule_modem_manager_relaunch (NMModemManager *self, /* No need to pass an extra reference to self; timeout/idle will be * cancelled if the object gets disposed. */ if (n_seconds) - self->priv->mm_launch_id = g_timeout_add_seconds (n_seconds, (GSourceFunc)mm_launch_cb, self); + self->_priv.mm_launch_id = g_timeout_add_seconds (n_seconds, (GSourceFunc)mm_launch_cb, self); else - self->priv->mm_launch_id = g_idle_add ((GSourceFunc)mm_launch_cb, self); + self->_priv.mm_launch_id = g_idle_add ((GSourceFunc)mm_launch_cb, self); } static void @@ -533,8 +546,8 @@ bus_get_ready (GObject *source, gs_unref_object NMModemManager *self = NM_MODEM_MANAGER (user_data); gs_free_error GError *error = NULL; - self->priv->dbus_connection = g_bus_get_finish (res, &error); - if (!self->priv->dbus_connection) { + self->_priv.dbus_connection = g_bus_get_finish (res, &error); + if (!self->_priv.dbus_connection) { nm_log_warn (LOGD_MB, "error getting bus connection: %s", error->message); return; } @@ -546,16 +559,13 @@ bus_get_ready (GObject *source, #endif } -/************************************************************************/ +/*****************************************************************************/ static void nm_modem_manager_init (NMModemManager *self) { - self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_MODEM_MANAGER, NMModemManagerPrivate); + self->_priv.modems = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - self->priv->modems = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - - // FIXME: this doesn't handle bus-daemon restart g_bus_get (G_BUS_TYPE_SYSTEM, NULL, (GAsyncReadyCallback)bus_get_ready, @@ -567,26 +577,25 @@ dispose (GObject *object) { NMModemManager *self = NM_MODEM_MANAGER (object); - nm_clear_g_source (&self->priv->mm_launch_id); + nm_clear_g_source (&self->_priv.mm_launch_id); clear_modem_manager (self); #if WITH_OFONO - if (self->priv->ofono_proxy) { - g_signal_handlers_disconnect_by_func (self->priv->ofono_proxy, ofono_name_owner_changed, self); - g_signal_handlers_disconnect_by_func (self->priv->ofono_proxy, ofono_signal_cb, self); - g_clear_object (&self->priv->ofono_proxy); + if (self->_priv.ofono_proxy) { + g_signal_handlers_disconnect_by_func (self->_priv.ofono_proxy, ofono_name_owner_changed, self); + g_signal_handlers_disconnect_by_func (self->_priv.ofono_proxy, ofono_signal_cb, self); + g_clear_object (&self->_priv.ofono_proxy); } #endif - g_clear_object (&self->priv->dbus_connection); + g_clear_object (&self->_priv.dbus_connection); - if (self->priv->modems) { - g_hash_table_foreach_remove (self->priv->modems, remove_one_modem, object); - g_hash_table_destroy (self->priv->modems); + if (self->_priv.modems) { + g_hash_table_foreach_remove (self->_priv.modems, remove_one_modem, object); + g_hash_table_destroy (self->_priv.modems); } - /* Chain up to the parent class */ G_OBJECT_CLASS (nm_modem_manager_parent_class)->dispose (object); } @@ -595,15 +604,12 @@ nm_modem_manager_class_init (NMModemManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMModemManagerPrivate)); - object_class->dispose = dispose; signals[MODEM_ADDED] = - g_signal_new (NM_MODEM_MANAGER_MODEM_ADDED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMModemManagerClass, modem_added), - NULL, NULL, NULL, - G_TYPE_NONE, 1, NM_TYPE_MODEM); + g_signal_new (NM_MODEM_MANAGER_MODEM_ADDED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, NM_TYPE_MODEM); } diff --git a/src/devices/wwan/nm-modem-manager.h b/src/devices/wwan/nm-modem-manager.h index b0014c6a89..65594dfa56 100644 --- a/src/devices/wwan/nm-modem-manager.h +++ b/src/devices/wwan/nm-modem-manager.h @@ -25,23 +25,17 @@ #include "nm-modem.h" -#define NM_TYPE_MODEM_MANAGER (nm_modem_manager_get_type ()) -#define NM_MODEM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_MODEM_MANAGER, NMModemManager)) +#define NM_TYPE_MODEM_MANAGER (nm_modem_manager_get_type ()) +#define NM_MODEM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_MODEM_MANAGER, NMModemManager)) +#define NM_MODEM_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_MODEM_MANAGER, NMModemManagerClass)) +#define NM_IS_MODEM_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_MODEM_MANAGER)) +#define NM_IS_MODEM_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_MODEM_MANAGER)) +#define NM_MODEM_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_MODEM_MANAGER, NMModemManagerClass)) #define NM_MODEM_MANAGER_MODEM_ADDED "modem-added" -typedef struct _NMModemManagerPrivate NMModemManagerPrivate; - -typedef struct { - GObject parent; - NMModemManagerPrivate *priv; -} NMModemManager; - -typedef struct { - GObjectClass parent; - - void (*modem_added) (NMModemManager *self, NMModem *modem); -} NMModemManagerClass; +typedef struct _NMModemManager NMModemManager; +typedef struct _NMModemManagerClass NMModemManagerClass; GType nm_modem_manager_get_type (void); diff --git a/src/devices/wwan/nm-modem-ofono.c b/src/devices/wwan/nm-modem-ofono.c index 86492d3d98..69582f97c1 100644 --- a/src/devices/wwan/nm-modem-ofono.c +++ b/src/devices/wwan/nm-modem-ofono.c @@ -28,10 +28,7 @@ #include "nm-device-private.h" #include "nm-modem.h" #include "nm-platform.h" - -G_DEFINE_TYPE (NMModemOfono, nm_modem_ofono, NM_TYPE_MODEM) - -#define NM_MODEM_OFONO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_MODEM_OFONO, NMModemOfonoPrivate)) +#include "nm-ip4-config.h" #define VARIANT_IS_OF_TYPE_BOOLEAN(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_BOOLEAN) )) #define VARIANT_IS_OF_TYPE_STRING(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_STRING) )) @@ -39,6 +36,8 @@ G_DEFINE_TYPE (NMModemOfono, nm_modem_ofono, NM_TYPE_MODEM) #define VARIANT_IS_OF_TYPE_STRING_ARRAY(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_STRING_ARRAY) )) #define VARIANT_IS_OF_TYPE_DICTIONARY(v) ((v) != NULL && ( g_variant_is_of_type ((v), G_VARIANT_TYPE_DICTIONARY) )) +/*****************************************************************************/ + typedef struct { GHashTable *connect_properties; @@ -58,6 +57,19 @@ typedef struct { NMIP4Config *ip4_config; } NMModemOfonoPrivate; +struct _NMModemOfono { + NMModem parent; + NMModemOfonoPrivate _priv; +}; + +struct _NMModemOfonoClass { + NMModemClass parent; +}; + +G_DEFINE_TYPE (NMModemOfono, nm_modem_ofono, NM_TYPE_MODEM) + +#define NM_MODEM_OFONO_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMModemOfono, NM_IS_MODEM_OFONO) + /*****************************************************************************/ #define _NMLOG_DOMAIN LOGD_MB @@ -239,7 +251,7 @@ disconnect (NMModem *modem, user_data, disconnect); } - /* Setup cancellable */ + ctx->cancellable = cancellable ? g_object_ref (cancellable) : NULL; if (disconnect_context_complete_if_cancelled (ctx)) return; @@ -261,17 +273,16 @@ disconnect (NMModem *modem, } static void -deactivate_cleanup (NMModem *_self, NMDevice *device) +deactivate_cleanup (NMModem *modem, NMDevice *device) { - NMModemOfono *self = NM_MODEM_OFONO (_self); + NMModemOfono *self = NM_MODEM_OFONO (modem); NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self); /* TODO: cancel SimpleConnect() if any */ g_clear_object (&priv->ip4_config); - /* Chain up parent's */ - NM_MODEM_CLASS (nm_modem_ofono_parent_class)->deactivate_cleanup (_self, device); + NM_MODEM_CLASS (nm_modem_ofono_parent_class)->deactivate_cleanup (modem, device); } @@ -700,30 +711,6 @@ modem_get_properties_done (GDBusProxy *proxy, GAsyncResult *result, gpointer use g_variant_unref (v_properties); } -NMModem * -nm_modem_ofono_new (const char *path) -{ - gs_free char *basename = NULL; - - g_return_val_if_fail (path != NULL, NULL); - - nm_log_info (LOGD_MB, "ofono: creating new Ofono modem path %s", path); - - /* Use short modem name (not its object path) as the NM device name (which - * comes from NM_MODEM_UID)and the device ID. - */ - basename = g_path_get_basename (path); - - return (NMModem *) g_object_new (NM_TYPE_MODEM_OFONO, - NM_MODEM_PATH, path, - NM_MODEM_UID, basename, - NM_MODEM_DEVICE_ID, basename, - NM_MODEM_CONTROL_PORT, "ofono", /* mandatory */ - NM_MODEM_DRIVER, "ofono", - NM_MODEM_STATE, NM_MODEM_STATE_INITIALIZING, - NULL); -} - static void stage1_prepare_done (GDBusProxy *proxy, GAsyncResult *result, gpointer user_data) { @@ -933,11 +920,11 @@ out: } static NMActStageReturn -static_stage3_ip4_config_start (NMModem *_self, +static_stage3_ip4_config_start (NMModem *modem, NMActRequest *req, NMDeviceStateReason *reason) { - NMModemOfono *self = NM_MODEM_OFONO (_self); + NMModemOfono *self = NM_MODEM_OFONO (modem); NMModemOfonoPrivate *priv = NM_MODEM_OFONO_GET_PRIVATE (self); NMActStageReturn ret = NM_ACT_STAGE_RETURN_FAILURE; GError *error = NULL; @@ -1123,6 +1110,8 @@ modem_proxy_new_cb (GDBusProxy *proxy, GAsyncResult *result, gpointer user_data) g_object_ref (self)); } +/*****************************************************************************/ + static void nm_modem_ofono_init (NMModemOfono *self) { @@ -1144,6 +1133,30 @@ constructed (GObject *object) g_object_ref (self)); } +NMModem * +nm_modem_ofono_new (const char *path) +{ + gs_free char *basename = NULL; + + g_return_val_if_fail (path != NULL, NULL); + + nm_log_info (LOGD_MB, "ofono: creating new Ofono modem path %s", path); + + /* Use short modem name (not its object path) as the NM device name (which + * comes from NM_MODEM_UID)and the device ID. + */ + basename = g_path_get_basename (path); + + return (NMModem *) g_object_new (NM_TYPE_MODEM_OFONO, + NM_MODEM_PATH, path, + NM_MODEM_UID, basename, + NM_MODEM_DEVICE_ID, basename, + NM_MODEM_CONTROL_PORT, "ofono", /* mandatory */ + NM_MODEM_DRIVER, "ofono", + NM_MODEM_STATE, NM_MODEM_STATE_INITIALIZING, + NULL); +} + static void dispose (GObject *object) { @@ -1182,9 +1195,6 @@ nm_modem_ofono_class_init (NMModemOfonoClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); NMModemClass *modem_class = NM_MODEM_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMModemOfonoPrivate)); - - /* Virtual methods */ object_class->constructed = constructed; object_class->dispose = dispose; @@ -1194,9 +1204,6 @@ nm_modem_ofono_class_init (NMModemOfonoClass *klass) modem_class->deactivate_cleanup = deactivate_cleanup; modem_class->check_connection_compatible = check_connection_compatible; - /* same as nm-modem-broadband */ modem_class->act_stage1_prepare = act_stage1_prepare; - - /* same as nm-modem-broadband */ modem_class->static_stage3_ip4_config_start = static_stage3_ip4_config_start; } diff --git a/src/devices/wwan/nm-modem-ofono.h b/src/devices/wwan/nm-modem-ofono.h index 5965526d61..d9cb68ac94 100644 --- a/src/devices/wwan/nm-modem-ofono.h +++ b/src/devices/wwan/nm-modem-ofono.h @@ -38,13 +38,8 @@ #define OFONO_DBUS_INTERFACE_CONNECTION_CONTEXT "org.ofono.ConnectionContext" #define OFONO_DBUS_INTERFACE_SIM_MANAGER "org.ofono.SimManager" -typedef struct { - NMModem parent; -} NMModemOfono; - -typedef struct { - NMModemClass parent; -} NMModemOfonoClass; +typedef struct _NMModemOfono NMModemOfono; +typedef struct _NMModemOfonoClass NMModemOfonoClass; GType nm_modem_ofono_get_type (void); diff --git a/src/devices/wwan/nm-modem.c b/src/devices/wwan/nm-modem.c index 94430af47a..d5f12b1cc2 100644 --- a/src/devices/wwan/nm-modem.c +++ b/src/devices/wwan/nm-modem.c @@ -32,13 +32,14 @@ #include "nm-device-private.h" #include "nm-modem-enum-types.h" #include "nm-route-manager.h" +#include "nm-act-request.h" +#include "nm-ip4-config.h" +#include "nm-ip6-config.h" +#include "ppp-manager/nm-ppp-status.h" -G_DEFINE_TYPE (NMModem, nm_modem, G_TYPE_OBJECT) - -#define NM_MODEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_MODEM, NMModemPrivate)) +/*****************************************************************************/ -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE (NMModem, PROP_CONTROL_PORT, PROP_DATA_PORT, PROP_PATH, @@ -52,11 +53,24 @@ enum { PROP_SIM_ID, PROP_IP_TYPES, PROP_SIM_OPERATOR_ID, +); - LAST_PROP +enum { + PPP_STATS, + PPP_FAILED, + PREPARE_RESULT, + IP4_CONFIG_RESULT, + IP6_CONFIG_RESULT, + AUTH_REQUESTED, + AUTH_RESULT, + REMOVED, + STATE_CHANGED, + LAST_SIGNAL, }; -typedef struct { +static guint signals[LAST_SIGNAL] = { 0 }; + +typedef struct _NMModemPrivate { char *uid; char *path; char *driver; @@ -86,22 +100,9 @@ typedef struct { guint32 out_bytes; } NMModemPrivate; -enum { - PPP_STATS, - PPP_FAILED, - PREPARE_RESULT, - IP4_CONFIG_RESULT, - IP6_CONFIG_RESULT, - AUTH_REQUESTED, - AUTH_RESULT, - REMOVED, - STATE_CHANGED, - - LAST_SIGNAL -}; - -static guint signals[LAST_SIGNAL] = { 0 }; +G_DEFINE_TYPE (NMModem, nm_modem, G_TYPE_OBJECT) +#define NM_MODEM_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR (self, NMModem, NM_IS_MODEM) /*****************************************************************************/ /* State/enabled/connected */ @@ -154,7 +155,7 @@ nm_modem_set_state (NMModem *self, reason ? reason : "none"); priv->state = new_state; - g_object_notify (G_OBJECT (self), NM_MODEM_STATE); + _notify (self, PROP_STATE); g_signal_emit (self, signals[STATE_CHANGED], 0, new_state, old_state, reason); } } @@ -397,7 +398,7 @@ set_data_port (NMModem *self, const char *new_data_port) if (g_strcmp0 (priv->data_port, new_data_port) != 0) { g_free (priv->data_port); priv->data_port = g_strdup (new_data_port); - g_object_notify (G_OBJECT (self), NM_MODEM_DATA_PORT); + _notify (self, PROP_DATA_PORT); } } @@ -1306,48 +1307,10 @@ nm_modem_get_capabilities (NMModem *self, /*****************************************************************************/ static void -nm_modem_init (NMModem *self) -{ -} - -static GObject* -constructor (GType type, - guint n_construct_params, - GObjectConstructParam *construct_params) -{ - GObject *object; - NMModemPrivate *priv; - - object = G_OBJECT_CLASS (nm_modem_parent_class)->constructor (type, - n_construct_params, - construct_params); - if (!object) - return NULL; - - priv = NM_MODEM_GET_PRIVATE (object); - - if (!priv->data_port && !priv->control_port) { - nm_log_err (LOGD_HW, "neither modem command nor data interface provided"); - goto err; - } - - if (!priv->path) { - nm_log_err (LOGD_HW, "D-Bus path not provided"); - goto err; - } - - return object; - -err: - g_object_unref (object); - return NULL; -} - -static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (object); + NMModemPrivate *priv = NM_MODEM_GET_PRIVATE ((NMModem *) object); switch (prop_id) { case PROP_PATH: @@ -1399,7 +1362,7 @@ static void set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (object); + NMModemPrivate *priv = NM_MODEM_GET_PRIVATE ((NMModem *) object); const char *s; switch (prop_id) { @@ -1458,10 +1421,53 @@ set_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + +static void +nm_modem_init (NMModem *self) +{ + self->_priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_MODEM, NMModemPrivate); +} + +static GObject* +constructor (GType type, + guint n_construct_params, + GObjectConstructParam *construct_params) +{ + GObject *object; + NMModemPrivate *priv; + + object = G_OBJECT_CLASS (nm_modem_parent_class)->constructor (type, + n_construct_params, + construct_params); + if (!object) + return NULL; + + priv = NM_MODEM_GET_PRIVATE ((NMModem *) object); + + if (!priv->data_port && !priv->control_port) { + nm_log_err (LOGD_HW, "neither modem command nor data interface provided"); + goto err; + } + + if (!priv->path) { + nm_log_err (LOGD_HW, "D-Bus path not provided"); + goto err; + } + + return object; + +err: + g_object_unref (object); + return NULL; +} + +/*****************************************************************************/ + static void dispose (GObject *object) { - NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (object); + NMModemPrivate *priv = NM_MODEM_GET_PRIVATE ((NMModem *) object); if (priv->act_request) { g_object_unref (priv->act_request); @@ -1474,7 +1480,7 @@ dispose (GObject *object) static void finalize (GObject *object) { - NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (object); + NMModemPrivate *priv = NM_MODEM_GET_PRIVATE ((NMModem *) object); g_free (priv->uid); g_free (priv->path); @@ -1495,7 +1501,6 @@ nm_modem_class_init (NMModemClass *klass) g_type_class_add_private (object_class, sizeof (NMModemPrivate)); - /* Virtual methods */ object_class->constructor = constructor; object_class->set_property = set_property; object_class->get_property = get_property; @@ -1506,131 +1511,114 @@ nm_modem_class_init (NMModemClass *klass) klass->stage3_ip6_config_request = stage3_ip6_config_request; klass->deactivate_cleanup = deactivate_cleanup; - /* Properties */ - - g_object_class_install_property - (object_class, PROP_UID, - g_param_spec_string (NM_MODEM_UID, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_PATH, - g_param_spec_string (NM_MODEM_PATH, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_DRIVER, - g_param_spec_string (NM_MODEM_DRIVER, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_CONTROL_PORT, - g_param_spec_string (NM_MODEM_CONTROL_PORT, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_DATA_PORT, - g_param_spec_string (NM_MODEM_DATA_PORT, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_IP4_METHOD, - g_param_spec_uint (NM_MODEM_IP4_METHOD, "", "", - NM_MODEM_IP_METHOD_UNKNOWN, - NM_MODEM_IP_METHOD_AUTO, - NM_MODEM_IP_METHOD_UNKNOWN, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_IP6_METHOD, - g_param_spec_uint (NM_MODEM_IP6_METHOD, "", "", - NM_MODEM_IP_METHOD_UNKNOWN, - NM_MODEM_IP_METHOD_AUTO, - NM_MODEM_IP_METHOD_UNKNOWN, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_IP_TIMEOUT, - g_param_spec_uint (NM_MODEM_IP_TIMEOUT, "", "", - 0, 360, 20, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_STATE, - g_param_spec_enum (NM_MODEM_STATE, "", "", - NM_TYPE_MODEM_STATE, - NM_MODEM_STATE_UNKNOWN, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_DEVICE_ID, - g_param_spec_string (NM_MODEM_DEVICE_ID, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_SIM_ID, - g_param_spec_string (NM_MODEM_SIM_ID, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_IP_TYPES, - g_param_spec_uint (NM_MODEM_IP_TYPES, - "IP Types", - "Supported IP types", - 0, G_MAXUINT32, NM_MODEM_IP_TYPE_IPV4, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - g_object_class_install_property - (object_class, PROP_SIM_OPERATOR_ID, - g_param_spec_string (NM_MODEM_SIM_OPERATOR_ID, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - G_PARAM_STATIC_STRINGS)); - - /* Signals */ + obj_properties[PROP_UID] = + g_param_spec_string (NM_MODEM_UID, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_PATH] = + g_param_spec_string (NM_MODEM_PATH, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_DRIVER] = + g_param_spec_string (NM_MODEM_DRIVER, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_CONTROL_PORT] = + g_param_spec_string (NM_MODEM_CONTROL_PORT, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_DATA_PORT] = + g_param_spec_string (NM_MODEM_DATA_PORT, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_IP4_METHOD] = + g_param_spec_uint (NM_MODEM_IP4_METHOD, "", "", + NM_MODEM_IP_METHOD_UNKNOWN, + NM_MODEM_IP_METHOD_AUTO, + NM_MODEM_IP_METHOD_UNKNOWN, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_IP6_METHOD] = + g_param_spec_uint (NM_MODEM_IP6_METHOD, "", "", + NM_MODEM_IP_METHOD_UNKNOWN, + NM_MODEM_IP_METHOD_AUTO, + NM_MODEM_IP_METHOD_UNKNOWN, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_IP_TIMEOUT] = + g_param_spec_uint (NM_MODEM_IP_TIMEOUT, "", "", + 0, 360, 20, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_STATE] = + g_param_spec_enum (NM_MODEM_STATE, "", "", + NM_TYPE_MODEM_STATE, + NM_MODEM_STATE_UNKNOWN, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_DEVICE_ID] = + g_param_spec_string (NM_MODEM_DEVICE_ID, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_SIM_ID] = + g_param_spec_string (NM_MODEM_SIM_ID, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_IP_TYPES] = + g_param_spec_uint (NM_MODEM_IP_TYPES, + "IP Types", + "Supported IP types", + 0, G_MAXUINT32, NM_MODEM_IP_TYPE_IPV4, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_SIM_OPERATOR_ID] = + g_param_spec_string (NM_MODEM_SIM_OPERATOR_ID, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); signals[PPP_STATS] = - g_signal_new ("ppp-stats", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMModemClass, ppp_stats), - NULL, NULL, NULL, - G_TYPE_NONE, 2, - G_TYPE_UINT, G_TYPE_UINT); + g_signal_new ("ppp-stats", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 2, + G_TYPE_UINT, G_TYPE_UINT); signals[PPP_FAILED] = - g_signal_new ("ppp-failed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMModemClass, ppp_failed), - NULL, NULL, NULL, - G_TYPE_NONE, 1, G_TYPE_UINT); + g_signal_new ("ppp-failed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_UINT); signals[IP4_CONFIG_RESULT] = - g_signal_new (NM_MODEM_IP4_CONFIG_RESULT, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMModemClass, ip4_config_result), - NULL, NULL, NULL, - G_TYPE_NONE, 2, G_TYPE_OBJECT, G_TYPE_POINTER); + g_signal_new (NM_MODEM_IP4_CONFIG_RESULT, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 2, G_TYPE_OBJECT, G_TYPE_POINTER); /** * NMModem::ip6-config-result: @@ -1646,50 +1634,44 @@ nm_modem_class_init (NMModemClass *klass) * should be started after applying @config to the data port. */ signals[IP6_CONFIG_RESULT] = - g_signal_new (NM_MODEM_IP6_CONFIG_RESULT, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMModemClass, ip6_config_result), - NULL, NULL, NULL, - G_TYPE_NONE, 3, G_TYPE_OBJECT, G_TYPE_BOOLEAN, G_TYPE_POINTER); + g_signal_new (NM_MODEM_IP6_CONFIG_RESULT, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 3, G_TYPE_OBJECT, G_TYPE_BOOLEAN, G_TYPE_POINTER); signals[PREPARE_RESULT] = - g_signal_new (NM_MODEM_PREPARE_RESULT, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMModemClass, prepare_result), - NULL, NULL, NULL, - G_TYPE_NONE, 2, G_TYPE_BOOLEAN, G_TYPE_UINT); + g_signal_new (NM_MODEM_PREPARE_RESULT, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 2, G_TYPE_BOOLEAN, G_TYPE_UINT); signals[AUTH_REQUESTED] = - g_signal_new (NM_MODEM_AUTH_REQUESTED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMModemClass, auth_requested), - NULL, NULL, NULL, - G_TYPE_NONE, 0); + g_signal_new (NM_MODEM_AUTH_REQUESTED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 0); signals[AUTH_RESULT] = - g_signal_new (NM_MODEM_AUTH_RESULT, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMModemClass, auth_result), - NULL, NULL, NULL, - G_TYPE_NONE, 1, G_TYPE_POINTER); + g_signal_new (NM_MODEM_AUTH_RESULT, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_POINTER); signals[REMOVED] = - g_signal_new (NM_MODEM_REMOVED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMModemClass, removed), - NULL, NULL, NULL, - G_TYPE_NONE, 0); + g_signal_new (NM_MODEM_REMOVED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 0); signals[STATE_CHANGED] = - g_signal_new (NM_MODEM_STATE_CHANGED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMModemClass, state_changed), - NULL, NULL, NULL, - G_TYPE_NONE, 2, NM_TYPE_MODEM_STATE, NM_TYPE_MODEM_STATE); + g_signal_new (NM_MODEM_STATE_CHANGED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 2, NM_TYPE_MODEM_STATE, NM_TYPE_MODEM_STATE); } diff --git a/src/devices/wwan/nm-modem.h b/src/devices/wwan/nm-modem.h index 8f797d4400..bc866ca465 100644 --- a/src/devices/wwan/nm-modem.h +++ b/src/devices/wwan/nm-modem.h @@ -76,7 +76,7 @@ typedef enum { * combination of flags is possible. For example, (%NM_MODEM_IP_TYPE_IPV4 | * %NM_MODEM_IP_TYPE_IPV6) indicates that the modem supports IPv4 and IPv6 * but not simultaneously on the same bearer. - */ + */ typedef enum { NM_MODEM_IP_TYPE_UNKNOWN = 0x0, NM_MODEM_IP_TYPE_IPV4 = 0x1, @@ -100,9 +100,11 @@ typedef enum { /*< underscore_name=nm_modem_state >*/ NM_MODEM_STATE_CONNECTED = 12, } NMModemState; +struct _NMModemPrivate; typedef struct { GObject parent; + struct _NMModemPrivate *_priv; } NMModem; typedef struct { @@ -153,26 +155,6 @@ typedef struct { void (*deactivate_cleanup) (NMModem *self, NMDevice *device); gboolean (*owns_port) (NMModem *self, const char *iface); - - /* Signals */ - void (*ppp_stats) (NMModem *self, guint32 in_bytes, guint32 out_bytes); - void (*ppp_failed) (NMModem *self, NMDeviceStateReason reason); - - void (*prepare_result) (NMModem *self, gboolean success, NMDeviceStateReason reason); - void (*ip4_config_result) (NMModem *self, NMIP4Config *config, GError *error); - void (*ip6_config_result) (NMModem *self, - NMIP6Config *config, - gboolean do_slaac, - GError *error); - - void (*auth_requested) (NMModem *self); - void (*auth_result) (NMModem *self, GError *error); - - void (*state_changed) (NMModem *self, - NMModemState new_state, - NMModemState old_state); - - void (*removed) (NMModem *self); } NMModemClass; GType nm_modem_get_type (void); diff --git a/src/devices/wwan/nm-wwan-factory.c b/src/devices/wwan/nm-wwan-factory.c index 507935fc4a..c9f6cc12fb 100644 --- a/src/devices/wwan/nm-wwan-factory.c +++ b/src/devices/wwan/nm-wwan-factory.c @@ -24,35 +24,49 @@ #include <gmodule.h> #include "nm-device-factory.h" -#include "nm-wwan-factory.h" #include "nm-setting-gsm.h" #include "nm-setting-cdma.h" #include "nm-modem-manager.h" #include "nm-device-modem.h" #include "nm-platform.h" -static GType nm_wwan_factory_get_type (void); +/*****************************************************************************/ -static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface); +#define NM_TYPE_WWAN_FACTORY (nm_wwan_factory_get_type ()) +#define NM_WWAN_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_WWAN_FACTORY, NMWwanFactory)) +#define NM_WWAN_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_WWAN_FACTORY, NMWwanFactoryClass)) +#define NM_IS_WWAN_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_WWAN_FACTORY)) +#define NM_IS_WWAN_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_WWAN_FACTORY)) +#define NM_WWAN_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_WWAN_FACTORY, NMWwanFactoryClass)) -G_DEFINE_TYPE_EXTENDED (NMWwanFactory, nm_wwan_factory, G_TYPE_OBJECT, 0, - G_IMPLEMENT_INTERFACE (NM_TYPE_DEVICE_FACTORY, device_factory_interface_init)) +typedef struct _NMWwanFactory NMWwanFactory; +typedef struct _NMWwanFactoryClass NMWwanFactoryClass; + +static GType nm_wwan_factory_get_type (void); -#define NM_WWAN_FACTORY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_WWAN_FACTORY, NMWwanFactoryPrivate)) +/*****************************************************************************/ typedef struct { NMModemManager *mm; } NMWwanFactoryPrivate; -/************************************************************************/ +struct _NMWwanFactory { + GObject parent; + NMWwanFactoryPrivate _priv; +}; -G_MODULE_EXPORT NMDeviceFactory * -nm_device_factory_create (GError **error) -{ - return (NMDeviceFactory *) g_object_new (NM_TYPE_WWAN_FACTORY, NULL); -} +struct _NMWwanFactoryClass { + GObjectClass parent; +}; -/************************************************************************/ +static void device_factory_interface_init (NMDeviceFactoryInterface *factory_iface); + +G_DEFINE_TYPE_EXTENDED (NMWwanFactory, nm_wwan_factory, G_TYPE_OBJECT, 0, + G_IMPLEMENT_INTERFACE (NM_TYPE_DEVICE_FACTORY, device_factory_interface_init)) + +#define NM_WWAN_FACTORY_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMWwanFactory, NM_IS_WWAN_FACTORY) + +/*****************************************************************************/ static void modem_added_cb (NMModemManager *manager, @@ -121,17 +135,11 @@ start (NMDeviceFactory *factory) self); } -static void -nm_wwan_factory_init (NMWwanFactory *self) -{ -} +/*****************************************************************************/ static void -device_factory_interface_init (NMDeviceFactoryInterface *factory_iface) +nm_wwan_factory_init (NMWwanFactory *self) { - factory_iface->get_supported_types = get_supported_types; - factory_iface->create_device = create_device; - factory_iface->start = start; } static void @@ -153,7 +161,21 @@ nm_wwan_factory_class_init (NMWwanFactoryClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMWwanFactoryPrivate)); - object_class->dispose = dispose; } + +static void +device_factory_interface_init (NMDeviceFactoryInterface *factory_iface) +{ + factory_iface->get_supported_types = get_supported_types; + factory_iface->create_device = create_device; + factory_iface->start = start; +} + +/*****************************************************************************/ + +G_MODULE_EXPORT NMDeviceFactory * +nm_device_factory_create (GError **error) +{ + return (NMDeviceFactory *) g_object_new (NM_TYPE_WWAN_FACTORY, NULL); +} diff --git a/src/devices/wwan/nm-wwan-factory.h b/src/devices/wwan/nm-wwan-factory.h deleted file mode 100644 index 61bdcb1e4b..0000000000 --- a/src/devices/wwan/nm-wwan-factory.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* NetworkManager -- Network link manager - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright (C) 2014 Red Hat, Inc. - */ - -#ifndef __NETWORKMANAGER_WWAN_FACTORY_H__ -#define __NETWORKMANAGER_WWAN_FACTORY_H__ - -#define NM_TYPE_WWAN_FACTORY (nm_wwan_factory_get_type ()) -#define NM_WWAN_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_WWAN_FACTORY, NMWwanFactory)) - -typedef struct { - GObject parent; -} NMWwanFactory; - -typedef struct { - GObjectClass parent; -} NMWwanFactoryClass; - -#endif /* __NETWORKMANAGER_WWAN_FACTORY_H__ */ diff --git a/src/dhcp-manager/nm-dhcp-client.c b/src/dhcp-manager/nm-dhcp-client.c index 3be2ea03f7..0e28726363 100644 --- a/src/dhcp-manager/nm-dhcp-client.c +++ b/src/dhcp-manager/nm-dhcp-client.c @@ -37,7 +37,26 @@ #include "nm-dhcp-client-logging.h" -typedef struct { +/*****************************************************************************/ + +enum { + SIGNAL_STATE_CHANGED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_IFACE, + PROP_IFINDEX, + PROP_HWADDR, + PROP_IPV6, + PROP_UUID, + PROP_PRIORITY, + PROP_TIMEOUT, +); + +typedef struct _NMDhcpClientPrivate { char * iface; int ifindex; GByteArray * hwaddr; @@ -55,33 +74,13 @@ typedef struct { guint timeout_id; guint watch_id; gboolean info_only; - } NMDhcpClientPrivate; -#define NM_DHCP_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP_CLIENT, NMDhcpClientPrivate)) - G_DEFINE_TYPE_EXTENDED (NMDhcpClient, nm_dhcp_client, G_TYPE_OBJECT, G_TYPE_FLAG_ABSTRACT, {}) -enum { - SIGNAL_STATE_CHANGED, - LAST_SIGNAL -}; +#define NM_DHCP_CLIENT_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR (self, NMDhcpClient, NM_IS_DHCP_CLIENT) -static guint signals[LAST_SIGNAL] = { 0 }; - -enum { - PROP_0, - PROP_IFACE, - PROP_IFINDEX, - PROP_HWADDR, - PROP_IPV6, - PROP_UUID, - PROP_PRIORITY, - PROP_TIMEOUT, - LAST_PROP -}; - -/********************************************/ +/*****************************************************************************/ pid_t nm_dhcp_client_get_pid (NMDhcpClient *self) @@ -186,7 +185,7 @@ nm_dhcp_client_get_fqdn (NMDhcpClient *self) return NM_DHCP_CLIENT_GET_PRIVATE (self)->fqdn; } -/********************************************/ +/*****************************************************************************/ static const char *state_table[NM_DHCP_STATE_MAX + 1] = { [NM_DHCP_STATE_UNKNOWN] = "unknown", @@ -232,7 +231,7 @@ reason_to_state (NMDhcpClient *self, const char *iface, const char *reason) return NM_DHCP_STATE_UNKNOWN; } -/********************************************/ +/*****************************************************************************/ static void timeout_cleanup (NMDhcpClient *self) @@ -618,7 +617,7 @@ nm_dhcp_client_stop (NMDhcpClient *self, gboolean release) nm_dhcp_client_set_state (self, NM_DHCP_STATE_DONE, NULL, NULL); } -/********************************************/ +/*****************************************************************************/ static char * bytearray_variant_to_string (NMDhcpClient *self, GVariant *value, const char *key) @@ -776,19 +775,13 @@ nm_dhcp_client_handle_event (gpointer unused, return TRUE; } -/********************************************/ - -static void -nm_dhcp_client_init (NMDhcpClient *self) -{ - NM_DHCP_CLIENT_GET_PRIVATE (self)->pid = -1; -} +/*****************************************************************************/ static void get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) + GValue *value, GParamSpec *pspec) { - NMDhcpClientPrivate *priv = NM_DHCP_CLIENT_GET_PRIVATE (object); + NMDhcpClientPrivate *priv = NM_DHCP_CLIENT_GET_PRIVATE ((NMDhcpClient *) object); switch (prop_id) { case PROP_IFACE: @@ -820,10 +813,10 @@ get_property (GObject *object, guint prop_id, static void set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) + const GValue *value, GParamSpec *pspec) { - NMDhcpClientPrivate *priv = NM_DHCP_CLIENT_GET_PRIVATE (object); - + NMDhcpClientPrivate *priv = NM_DHCP_CLIENT_GET_PRIVATE ((NMDhcpClient *) object); + switch (prop_id) { case PROP_IFACE: /* construct-only */ @@ -859,6 +852,19 @@ set_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + +static void +nm_dhcp_client_init (NMDhcpClient *self) +{ + NMDhcpClientPrivate *priv; + + priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_DHCP_CLIENT, NMDhcpClientPrivate); + self->_priv = priv; + + priv->pid = -1; +} + static void dispose (GObject *object) { @@ -899,7 +905,6 @@ nm_dhcp_client_class_init (NMDhcpClientClass *client_class) g_type_class_add_private (client_class, sizeof (NMDhcpClientPrivate)); - /* virtual methods */ object_class->dispose = dispose; object_class->get_property = get_property; object_class->set_property = set_property; @@ -907,61 +912,56 @@ nm_dhcp_client_class_init (NMDhcpClientClass *client_class) client_class->stop = stop; client_class->get_duid = get_duid; - g_object_class_install_property - (object_class, PROP_IFACE, - g_param_spec_string (NM_DHCP_CLIENT_INTERFACE, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_IFINDEX, - g_param_spec_int (NM_DHCP_CLIENT_IFINDEX, "", "", - -1, G_MAXINT, -1, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - - g_object_class_install_property - (object_class, PROP_HWADDR, - g_param_spec_boxed (NM_DHCP_CLIENT_HWADDR, "", "", - G_TYPE_BYTE_ARRAY, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_IPV6, - g_param_spec_boolean (NM_DHCP_CLIENT_IPV6, "", "", - FALSE, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_UUID, - g_param_spec_string (NM_DHCP_CLIENT_UUID, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_PRIORITY, - g_param_spec_uint (NM_DHCP_CLIENT_PRIORITY, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_TIMEOUT, - g_param_spec_uint (NM_DHCP_CLIENT_TIMEOUT, "", "", - 0, G_MAXUINT, 45, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - /* signals */ + obj_properties[PROP_IFACE] = + g_param_spec_string (NM_DHCP_CLIENT_INTERFACE, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_IFINDEX] = + g_param_spec_int (NM_DHCP_CLIENT_IFINDEX, "", "", + -1, G_MAXINT, -1, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_HWADDR] = + g_param_spec_boxed (NM_DHCP_CLIENT_HWADDR, "", "", + G_TYPE_BYTE_ARRAY, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_IPV6] = + g_param_spec_boolean (NM_DHCP_CLIENT_IPV6, "", "", + FALSE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_UUID] = + g_param_spec_string (NM_DHCP_CLIENT_UUID, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_PRIORITY] = + g_param_spec_uint (NM_DHCP_CLIENT_PRIORITY, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_TIMEOUT] = + g_param_spec_uint (NM_DHCP_CLIENT_TIMEOUT, "", "", + 0, G_MAXUINT, 45, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + signals[SIGNAL_STATE_CHANGED] = - g_signal_new (NM_DHCP_CLIENT_SIGNAL_STATE_CHANGED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMDhcpClientClass, state_changed), - NULL, NULL, NULL, - G_TYPE_NONE, 4, G_TYPE_UINT, G_TYPE_OBJECT, G_TYPE_HASH_TABLE, G_TYPE_STRING); + g_signal_new (NM_DHCP_CLIENT_SIGNAL_STATE_CHANGED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (NMDhcpClientClass, state_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 4, G_TYPE_UINT, G_TYPE_OBJECT, G_TYPE_HASH_TABLE, G_TYPE_STRING); } diff --git a/src/dhcp-manager/nm-dhcp-client.h b/src/dhcp-manager/nm-dhcp-client.h index 5779d4eddf..9a2d21f713 100644 --- a/src/dhcp-manager/nm-dhcp-client.h +++ b/src/dhcp-manager/nm-dhcp-client.h @@ -52,8 +52,11 @@ typedef enum { NM_DHCP_STATE_MAX = __NM_DHCP_STATE_MAX - 1, } NMDhcpState; +struct _NMDhcpClientPrivate; + typedef struct { GObject parent; + struct _NMDhcpClientPrivate *_priv; } NMDhcpClient; typedef struct { @@ -96,19 +99,6 @@ typedef struct { GType nm_dhcp_client_get_type (void); -typedef const char *(*NMDhcpClientGetPathFunc) (void); - -typedef GSList * (*NMDhcpClientGetLeaseConfigsFunc) (const char *iface, - int ifindex, - const char *uuid, - gboolean ipv6, - guint32 default_route_metric); - -void _nm_dhcp_client_register (GType gtype, - const char *name, - NMDhcpClientGetPathFunc get_path_func, - NMDhcpClientGetLeaseConfigsFunc get_lease_configs_func); - pid_t nm_dhcp_client_get_pid (NMDhcpClient *self); const char *nm_dhcp_client_get_iface (NMDhcpClient *self); @@ -170,5 +160,23 @@ gboolean nm_dhcp_client_handle_event (gpointer unused, void nm_dhcp_client_set_client_id (NMDhcpClient *self, GBytes *client_id); -#endif /* __NETWORKMANAGER_DHCP_CLIENT_H__ */ +/***************************************************************************** + * Client data + *****************************************************************************/ + +typedef struct { + GType (*get_type)(void); + const char *name; + const char *(*get_path) (void); + GSList *(*get_lease_ip_configs) (const char *iface, + int ifindex, + const char *uuid, + gboolean ipv6, + guint32 default_route_metric); +} NMDhcpClientFactory; + +extern const NMDhcpClientFactory _nm_dhcp_client_factory_dhclient; +extern const NMDhcpClientFactory _nm_dhcp_client_factory_dhcpcd; +extern const NMDhcpClientFactory _nm_dhcp_client_factory_internal; +#endif /* __NETWORKMANAGER_DHCP_CLIENT_H__ */ diff --git a/src/dhcp-manager/nm-dhcp-dhclient.c b/src/dhcp-manager/nm-dhcp-dhclient.c index bd02062426..a055e54179 100644 --- a/src/dhcp-manager/nm-dhcp-dhclient.c +++ b/src/dhcp-manager/nm-dhcp-dhclient.c @@ -27,6 +27,8 @@ #include "nm-default.h" +#if WITH_DHCLIENT + #include <string.h> #include <stdlib.h> #include <errno.h> @@ -36,7 +38,6 @@ #include <arpa/inet.h> #include <ctype.h> -#include "nm-dhcp-dhclient.h" #include "nm-utils.h" #include "nm-dhcp-dhclient-utils.h" #include "nm-dhcp-manager.h" @@ -44,9 +45,21 @@ #include "nm-dhcp-listener.h" #include "nm-dhcp-client-logging.h" -G_DEFINE_TYPE (NMDhcpDhclient, nm_dhcp_dhclient, NM_TYPE_DHCP_CLIENT) +/*****************************************************************************/ + +#define NM_TYPE_DHCP_DHCLIENT (nm_dhcp_dhclient_get_type ()) +#define NM_DHCP_DHCLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DHCP_DHCLIENT, NMDhcpDhclient)) +#define NM_DHCP_DHCLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DHCP_DHCLIENT, NMDhcpDhclientClass)) +#define NM_IS_DHCP_DHCLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DHCP_DHCLIENT)) +#define NM_IS_DHCP_DHCLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP_DHCLIENT)) +#define NM_DHCP_DHCLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP_DHCLIENT, NMDhcpDhclientClass)) + +typedef struct _NMDhcpDhclient NMDhcpDhclient; +typedef struct _NMDhcpDhclientClass NMDhcpDhclientClass; + +static GType nm_dhcp_dhclient_get_type (void); -#define NM_DHCP_DHCLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP_DHCLIENT, NMDhcpDhclientPrivate)) +/*****************************************************************************/ typedef struct { char *conf_file; @@ -56,14 +69,25 @@ typedef struct { NMDhcpListener *dhcp_listener; } NMDhcpDhclientPrivate; +struct _NMDhcpDhclient { + NMDhcpClient parent; + NMDhcpDhclientPrivate _priv; +}; + +struct _NMDhcpDhclientClass { + NMDhcpClientClass parent; +}; + +G_DEFINE_TYPE (NMDhcpDhclient, nm_dhcp_dhclient, NM_TYPE_DHCP_CLIENT) + +#define NM_DHCP_DHCLIENT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDhcpDhclient, NM_IS_DHCP_DHCLIENT) + +/*****************************************************************************/ + static const char * nm_dhcp_dhclient_get_path (void) { - const char *path = NULL; - - if (WITH_DHCLIENT) - path = nm_utils_find_helper ("dhclient", DHCLIENT_PATH, NULL); - return path; + return nm_utils_find_helper ("dhclient", DHCLIENT_PATH, NULL); } /** @@ -542,11 +566,11 @@ stop (NMDhcpClient *client, gboolean release, const GByteArray *duid) static void state_changed (NMDhcpClient *client, - NMDhcpState state, - GObject *ip_config, - GHashTable *options) + NMDhcpState state, + GObject *ip_config, + GHashTable *options) { - NMDhcpDhclientPrivate *priv = NM_DHCP_DHCLIENT_GET_PRIVATE (client); + NMDhcpDhclientPrivate *priv = NM_DHCP_DHCLIENT_GET_PRIVATE ((NMDhcpDhclient *) client); gs_unref_bytes GBytes *client_id = NULL; if (nm_dhcp_client_get_client_id (client)) @@ -600,7 +624,7 @@ get_duid (NMDhcpClient *client) return duid ? duid : NM_DHCP_CLIENT_CLASS (nm_dhcp_dhclient_parent_class)->get_duid (client); } -/***************************************************/ +/*****************************************************************************/ static const char *def_leasefiles[] = { SYSCONFDIR "/dhclient6.leases", @@ -637,7 +661,7 @@ nm_dhcp_dhclient_init (NMDhcpDhclient *self) static void dispose (GObject *object) { - NMDhcpDhclientPrivate *priv = NM_DHCP_DHCLIENT_GET_PRIVATE (object); + NMDhcpDhclientPrivate *priv = NM_DHCP_DHCLIENT_GET_PRIVATE ((NMDhcpDhclient *) object); if (priv->dhcp_listener) { g_signal_handlers_disconnect_by_func (priv->dhcp_listener, @@ -646,9 +670,9 @@ dispose (GObject *object) g_clear_object (&priv->dhcp_listener); } - g_free (priv->pid_file); - g_free (priv->conf_file); - g_free (priv->lease_file); + nm_clear_g_free (&priv->pid_file); + nm_clear_g_free (&priv->conf_file); + nm_clear_g_free (&priv->lease_file); G_OBJECT_CLASS (nm_dhcp_dhclient_parent_class)->dispose (object); } @@ -659,9 +683,6 @@ nm_dhcp_dhclient_class_init (NMDhcpDhclientClass *dhclient_class) NMDhcpClientClass *client_class = NM_DHCP_CLIENT_CLASS (dhclient_class); GObjectClass *object_class = G_OBJECT_CLASS (dhclient_class); - g_type_class_add_private (dhclient_class, sizeof (NMDhcpDhclientPrivate)); - - /* virtual methods */ object_class->dispose = dispose; client_class->ip4_start = ip4_start; @@ -671,13 +692,11 @@ nm_dhcp_dhclient_class_init (NMDhcpDhclientClass *dhclient_class) client_class->state_changed = state_changed; } -static void __attribute__((constructor)) -register_dhcp_dhclient (void) -{ - nm_g_type_init (); - _nm_dhcp_client_register (NM_TYPE_DHCP_DHCLIENT, - "dhclient", - nm_dhcp_dhclient_get_path, - nm_dhcp_dhclient_get_lease_ip_configs); -} +const NMDhcpClientFactory _nm_dhcp_client_factory_dhclient = { + .name = "dhclient", + .get_type = nm_dhcp_dhclient_get_type, + .get_path = nm_dhcp_dhclient_get_path, + .get_lease_ip_configs = nm_dhcp_dhclient_get_lease_ip_configs, +}; +#endif /* WITH_DHCLIENT */ diff --git a/src/dhcp-manager/nm-dhcp-dhclient.h b/src/dhcp-manager/nm-dhcp-dhclient.h deleted file mode 100644 index 7f0c855a75..0000000000 --- a/src/dhcp-manager/nm-dhcp-dhclient.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright (C) 2005 - 2010 Red Hat, Inc. - */ - -#ifndef __NETWORKMANAGER_DHCP_DHCLIENT_H__ -#define __NETWORKMANAGER_DHCP_DHCLIENT_H__ - -#include "nm-dhcp-client.h" - -#define NM_TYPE_DHCP_DHCLIENT (nm_dhcp_dhclient_get_type ()) -#define NM_DHCP_DHCLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DHCP_DHCLIENT, NMDhcpDhclient)) -#define NM_DHCP_DHCLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DHCP_DHCLIENT, NMDhcpDhclientClass)) -#define NM_IS_DHCP_DHCLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DHCP_DHCLIENT)) -#define NM_IS_DHCP_DHCLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP_DHCLIENT)) -#define NM_DHCP_DHCLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP_DHCLIENT, NMDhcpDhclientClass)) - -typedef struct { - NMDhcpClient parent; -} NMDhcpDhclient; - -typedef struct { - NMDhcpClientClass parent; -} NMDhcpDhclientClass; - -GType nm_dhcp_dhclient_get_type (void); - -#endif /* __NETWORKMANAGER_DHCP_DHCLIENT_H__ */ - diff --git a/src/dhcp-manager/nm-dhcp-dhcpcd.c b/src/dhcp-manager/nm-dhcp-dhcpcd.c index 17ec993a5f..6b7fe38bbf 100644 --- a/src/dhcp-manager/nm-dhcp-dhcpcd.c +++ b/src/dhcp-manager/nm-dhcp-dhcpcd.c @@ -20,9 +20,10 @@ * */ - #include "nm-default.h" +#if WITH_DHCPCD + #include <string.h> #include <stdlib.h> #include <errno.h> @@ -31,30 +32,52 @@ #include <netinet/in.h> #include <arpa/inet.h> -#include "nm-dhcp-dhcpcd.h" #include "nm-dhcp-manager.h" #include "nm-utils.h" #include "NetworkManagerUtils.h" #include "nm-dhcp-listener.h" #include "nm-dhcp-client-logging.h" -G_DEFINE_TYPE (NMDhcpDhcpcd, nm_dhcp_dhcpcd, NM_TYPE_DHCP_CLIENT) +/*****************************************************************************/ + +#define NM_TYPE_DHCP_DHCPCD (nm_dhcp_dhcpcd_get_type ()) +#define NM_DHCP_DHCPCD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DHCP_DHCPCD, NMDhcpDhcpcd)) +#define NM_DHCP_DHCPCD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DHCP_DHCPCD, NMDhcpDhcpcdClass)) +#define NM_IS_DHCP_DHCPCD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DHCP_DHCPCD)) +#define NM_IS_DHCP_DHCPCD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP_DHCPCD)) +#define NM_DHCP_DHCPCD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP_DHCPCD, NMDhcpDhcpcdClass)) -#define NM_DHCP_DHCPCD_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP_DHCPCD, NMDhcpDhcpcdPrivate)) +typedef struct _NMDhcpDhcpcd NMDhcpDhcpcd; +typedef struct _NMDhcpDhcpcdClass NMDhcpDhcpcdClass; + +static GType nm_dhcp_dhcpcd_get_type (void); + +/*****************************************************************************/ typedef struct { char *pid_file; NMDhcpListener *dhcp_listener; } NMDhcpDhcpcdPrivate; +struct _NMDhcpDhcpcd { + NMDhcpClient parent; + NMDhcpDhcpcdPrivate _priv; +}; + +struct _NMDhcpDhcpcdClass { + NMDhcpClientClass parent; +}; + +G_DEFINE_TYPE (NMDhcpDhcpcd, nm_dhcp_dhcpcd, NM_TYPE_DHCP_CLIENT) + +#define NM_DHCP_DHCPCD_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDhcpDhcpcd, NM_IS_DHCP_DHCPCD) + +/*****************************************************************************/ + static const char * nm_dhcp_dhcpcd_get_path (void) { - const char *path = NULL; - - if (WITH_DHCPCD) - path = nm_utils_find_helper ("dhcpcd", DHCPCD_PATH, NULL); - return path; + return nm_utils_find_helper ("dhcpcd", DHCPCD_PATH, NULL); } static gboolean @@ -187,7 +210,7 @@ stop (NMDhcpClient *client, gboolean release, const GByteArray *duid) /* FIXME: implement release... */ } -/***************************************************/ +/*****************************************************************************/ static void nm_dhcp_dhcpcd_init (NMDhcpDhcpcd *self) @@ -204,7 +227,7 @@ nm_dhcp_dhcpcd_init (NMDhcpDhcpcd *self) static void dispose (GObject *object) { - NMDhcpDhcpcdPrivate *priv = NM_DHCP_DHCPCD_GET_PRIVATE (object); + NMDhcpDhcpcdPrivate *priv = NM_DHCP_DHCPCD_GET_PRIVATE ((NMDhcpDhcpcd *) object); if (priv->dhcp_listener) { g_signal_handlers_disconnect_by_func (priv->dhcp_listener, @@ -213,7 +236,7 @@ dispose (GObject *object) g_clear_object (&priv->dhcp_listener); } - g_free (priv->pid_file); + nm_clear_g_free (&priv->pid_file); G_OBJECT_CLASS (nm_dhcp_dhcpcd_parent_class)->dispose (object); } @@ -224,9 +247,6 @@ nm_dhcp_dhcpcd_class_init (NMDhcpDhcpcdClass *dhcpcd_class) NMDhcpClientClass *client_class = NM_DHCP_CLIENT_CLASS (dhcpcd_class); GObjectClass *object_class = G_OBJECT_CLASS (dhcpcd_class); - g_type_class_add_private (dhcpcd_class, sizeof (NMDhcpDhcpcdPrivate)); - - /* virtual methods */ object_class->dispose = dispose; client_class->ip4_start = ip4_start; @@ -234,13 +254,11 @@ nm_dhcp_dhcpcd_class_init (NMDhcpDhcpcdClass *dhcpcd_class) client_class->stop = stop; } -static void __attribute__((constructor)) -register_dhcp_dhclient (void) -{ - nm_g_type_init (); - _nm_dhcp_client_register (NM_TYPE_DHCP_DHCPCD, - "dhcpcd", - nm_dhcp_dhcpcd_get_path, - NULL); -} +const NMDhcpClientFactory _nm_dhcp_client_factory_dhcpcd = { + .name = "dhcpcd", + .get_type = nm_dhcp_dhcpcd_get_type, + .get_path = nm_dhcp_dhcpcd_get_path, + .get_lease_ip_configs = NULL, +}; +#endif /* WITH_DHCPCD */ diff --git a/src/dhcp-manager/nm-dhcp-dhcpcd.h b/src/dhcp-manager/nm-dhcp-dhcpcd.h deleted file mode 100644 index 6f15ad223e..0000000000 --- a/src/dhcp-manager/nm-dhcp-dhcpcd.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright (C) 2005 - 2010 Red Hat, Inc. - */ - -#ifndef __NETWORKMANAGER_DHCP_DHCPCD_H__ -#define __NETWORKMANAGER_DHCP_DHCPCD_H__ - -#include "nm-dhcp-client.h" - -#define NM_TYPE_DHCP_DHCPCD (nm_dhcp_dhcpcd_get_type ()) -#define NM_DHCP_DHCPCD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DHCP_DHCPCD, NMDhcpDhcpcd)) -#define NM_DHCP_DHCPCD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DHCP_DHCPCD, NMDhcpDhcpcdClass)) -#define NM_IS_DHCP_DHCPCD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DHCP_DHCPCD)) -#define NM_IS_DHCP_DHCPCD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP_DHCPCD)) -#define NM_DHCP_DHCPCD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP_DHCPCD, NMDhcpDhcpcdClass)) - -typedef struct { - NMDhcpClient parent; -} NMDhcpDhcpcd; - -typedef struct { - NMDhcpClientClass parent; -} NMDhcpDhcpcdClass; - -GType nm_dhcp_dhcpcd_get_type (void); - -#endif /* __NETWORKMANAGER_DHCP_DHCPCD_H__ */ - diff --git a/src/dhcp-manager/nm-dhcp-helper-api.h b/src/dhcp-manager/nm-dhcp-helper-api.h index a3eb171dc5..5834421563 100644 --- a/src/dhcp-manager/nm-dhcp-helper-api.h +++ b/src/dhcp-manager/nm-dhcp-helper-api.h @@ -22,7 +22,7 @@ #ifndef __NM_DHCP_HELPER_API_H__ #define __NM_DHCP_HELPER_API_H__ -/******************************************************************************/ +/*****************************************************************************/ #define NM_DHCP_CLIENT_DBUS_IFACE "org.freedesktop.nm_dhcp_client" @@ -31,6 +31,6 @@ #define NM_DHCP_HELPER_SERVER_INTERFACE_NAME "org.freedesktop.nm_dhcp_server" #define NM_DHCP_HELPER_SERVER_METHOD_NOTIFY "Notify" -/******************************************************************************/ +/*****************************************************************************/ #endif /* __NM_DHCP_HELPER_API_H__ */ diff --git a/src/dhcp-manager/nm-dhcp-listener.c b/src/dhcp-manager/nm-dhcp-listener.c index 0df4197389..5b2e618b2d 100644 --- a/src/dhcp-manager/nm-dhcp-listener.c +++ b/src/dhcp-manager/nm-dhcp-listener.c @@ -52,7 +52,7 @@ struct _NMDhcpListener { }; struct _NMDhcpListenerClass { - GObjectClass parent_class; + GObjectClass parent; }; enum { @@ -269,7 +269,7 @@ dis_connection_cb (NMBusManager *mgr, } } -/***************************************************/ +/*****************************************************************************/ static void nm_dhcp_listener_init (NMDhcpListener *self) diff --git a/src/dhcp-manager/nm-dhcp-manager.c b/src/dhcp-manager/nm-dhcp-manager.c index 50469c5cd5..570626dbc7 100644 --- a/src/dhcp-manager/nm-dhcp-manager.c +++ b/src/dhcp-manager/nm-dhcp-manager.c @@ -22,6 +22,8 @@ #include "nm-default.h" +#include "nm-dhcp-manager.h" + #include <sys/socket.h> #include <sys/wait.h> #include <signal.h> @@ -32,99 +34,81 @@ #include <fcntl.h> #include <stdio.h> -#include "nm-dhcp-manager.h" -#include "nm-dhcp-dhclient.h" -#include "nm-dhcp-dhcpcd.h" -#include "nm-dhcp-systemd.h" #include "nm-config.h" #include "NetworkManagerUtils.h" #define DHCP_TIMEOUT 45 /* default DHCP timeout, in seconds */ -/* default to installed helper, but can be modified for testing */ -const char *nm_dhcp_helper_path = LIBEXECDIR "/nm-dhcp-helper"; - -typedef GSList * (*GetLeaseConfigFunc) (const char *iface, const char *uuid, gboolean ipv6); +/*****************************************************************************/ typedef struct { - GType client_type; + const NMDhcpClientFactory *client_factory; GHashTable * clients; char * default_hostname; } NMDhcpManagerPrivate; -#define NM_DHCP_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP_MANAGER, NMDhcpManagerPrivate)) +struct _NMDhcpManager { + GObject parent; + NMDhcpManagerPrivate _priv; +}; + +struct _NMDhcpManagerClass { + GObjectClass parent; +}; G_DEFINE_TYPE (NMDhcpManager, nm_dhcp_manager, G_TYPE_OBJECT) -/***************************************************/ +#define NM_DHCP_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDhcpManager, NM_IS_DHCP_MANAGER) -typedef struct { - GType gtype; - const char *name; - NMDhcpClientGetPathFunc get_path_func; - NMDhcpClientGetLeaseConfigsFunc get_lease_configs_func; -} ClientDesc; +/*****************************************************************************/ -static GSList *client_descs = NULL; +/* default to installed helper, but can be modified for testing */ +const char *nm_dhcp_helper_path = LIBEXECDIR "/nm-dhcp-helper"; -void -_nm_dhcp_client_register (GType gtype, - const char *name, - NMDhcpClientGetPathFunc get_path_func, - NMDhcpClientGetLeaseConfigsFunc get_lease_configs_func) -{ - ClientDesc *desc; - GSList *iter; +/*****************************************************************************/ - g_return_if_fail (gtype != G_TYPE_INVALID); - g_return_if_fail (name != NULL); +const NMDhcpClientFactory *const _factories[] = { - for (iter = client_descs; iter; iter = iter->next) { - desc = iter->data; - g_return_if_fail (desc->gtype != gtype); - g_return_if_fail (strcmp (desc->name, name) != 0); - } + /* the order here matters, as we will try the plugins in this order to find + * the first available plugin. */ - desc = g_slice_new0 (ClientDesc); - desc->gtype = gtype; - desc->name = name; - desc->get_path_func = get_path_func; - desc->get_lease_configs_func = get_lease_configs_func; - client_descs = g_slist_prepend (client_descs, desc); -} +#ifndef NM_DHCP_INTERNAL_ONLY +#if WITH_DHCLIENT + &_nm_dhcp_client_factory_dhclient, +#endif +#if WITH_DHCPCD + &_nm_dhcp_client_factory_dhcpcd, +#endif +#endif + &_nm_dhcp_client_factory_internal, +}; -static ClientDesc * -find_client_desc (const char *name, GType gtype) +static const NMDhcpClientFactory * +_client_factory_find_by_name (const char *name) { - GSList *iter; + int i; - g_return_val_if_fail (name || gtype, NULL); + g_return_val_if_fail (name, NULL); - for (iter = client_descs; iter; iter = iter->next) { - ClientDesc *desc = iter->data; + for (i = 0; i < G_N_ELEMENTS (_factories); i++) { + const NMDhcpClientFactory *f = _factories[i]; - if (name && strcmp (desc->name, name) != 0) - continue; - if (gtype && desc->gtype != gtype) - continue; - return desc; + if (nm_streq (f->name, name)) + return f; } return NULL; } -static GType -is_client_enabled (const char *name) +static const NMDhcpClientFactory * +_client_factory_available (const NMDhcpClientFactory *client_factory) { - ClientDesc *desc; - - desc = find_client_desc (name, G_TYPE_INVALID); - if (desc && (!desc->get_path_func || desc->get_path_func())) - return desc->gtype; - - return G_TYPE_INVALID; + if ( client_factory + && (!client_factory->get_path || client_factory->get_path ())) + return client_factory; + return NULL; } -/***************************************************/ +/*****************************************************************************/ static NMDhcpClient * get_client_for_ifindex (NMDhcpManager *manager, int ifindex, gboolean ip6) @@ -212,7 +196,7 @@ client_start (NMDhcpManager *self, priv = NM_DHCP_MANAGER_GET_PRIVATE (self); /* Ensure we have a usable DHCP client */ - if (priv->client_type == G_TYPE_INVALID) + if (!priv->client_factory) return NULL; /* Kill any old client instance */ @@ -225,7 +209,7 @@ client_start (NMDhcpManager *self, } /* And make a new one */ - client = g_object_new (priv->client_type, + client = g_object_new (priv->client_factory->get_type (), NM_DHCP_CLIENT_INTERFACE, iface, NM_DHCP_CLIENT_IFINDEX, ifindex, NM_DHCP_CLIENT_HWADDR, hwaddr, @@ -339,7 +323,6 @@ nm_dhcp_manager_get_lease_ip_configs (NMDhcpManager *self, guint32 default_route_metric) { NMDhcpManagerPrivate *priv; - ClientDesc *desc; g_return_val_if_fail (NM_IS_DHCP_MANAGER (self), NULL); g_return_val_if_fail (iface != NULL, NULL); @@ -347,16 +330,13 @@ nm_dhcp_manager_get_lease_ip_configs (NMDhcpManager *self, g_return_val_if_fail (uuid != NULL, NULL); priv = NM_DHCP_MANAGER_GET_PRIVATE (self); - if (priv->client_type == G_TYPE_INVALID) - return NULL; - - desc = find_client_desc (NULL, priv->client_type); - if (desc && desc->get_lease_configs_func) - return desc->get_lease_configs_func (iface, ifindex, uuid, ipv6, default_route_metric); + if ( priv->client_factory + && priv->client_factory->get_lease_ip_configs) + return priv->client_factory->get_lease_ip_configs (iface, ifindex, uuid, ipv6, default_route_metric); return NULL; } -/***************************************************/ +/*****************************************************************************/ NM_DEFINE_SINGLETON_GETTER (NMDhcpManager, nm_dhcp_manager_get, NM_TYPE_DHCP_MANAGER); @@ -366,44 +346,43 @@ nm_dhcp_manager_init (NMDhcpManager *self) NMDhcpManagerPrivate *priv = NM_DHCP_MANAGER_GET_PRIVATE (self); NMConfig *config = nm_config_get (); const char *client; - GSList *iter; - GType type = G_TYPE_INVALID; + int i; + const NMDhcpClientFactory *client_factory = NULL; - for (iter = client_descs; iter; iter = iter->next) { - ClientDesc *desc = iter->data; + for (i = 0; i < G_N_ELEMENTS (_factories); i++) { + const NMDhcpClientFactory *f = _factories[i]; - nm_log_dbg (LOGD_DHCP, "dhcp-init: Registered DHCP client '%s' (%s)", - desc->name, g_type_name (desc->gtype)); + nm_log_dbg (LOGD_DHCP, "dhcp-init: enabled DHCP client '%s' (%s)%s", + f->name, g_type_name (f->get_type ()), + _client_factory_available (f) ? "" : " (not available)"); } /* Client-specific setup */ client = nm_config_get_dhcp_client (config); if (nm_config_get_configure_and_quit (config)) { - if (g_strcmp0 (client, "internal") != 0) + client_factory = &_nm_dhcp_client_factory_internal; + if (client && !nm_streq (client, client_factory->name)) nm_log_warn (LOGD_DHCP, "dhcp-init: Using internal DHCP client since configure-and-quit is set."); - client = "internal"; + } else { + if (client) { + client_factory = _client_factory_available (_client_factory_find_by_name (client)); + if (!client_factory) + nm_log_warn (LOGD_DHCP, "dhcp-init: DHCP client '%s' not available", client); + } + if (!client_factory) { + for (i = 0; i < G_N_ELEMENTS (_factories); i++) { + client_factory = _client_factory_available (_factories[i]); + if (client_factory) + break; + } + } } - if (client) - type = is_client_enabled (client); - - if (type == G_TYPE_INVALID) { - if (client) - nm_log_warn (LOGD_DHCP, "dhcp-init: DHCP client '%s' not available", client); - - type = is_client_enabled ("dhclient"); - if (type == G_TYPE_INVALID) - type = is_client_enabled ("dhcpcd"); - if (type == G_TYPE_INVALID) - type = is_client_enabled ("internal"); - } + nm_assert (client_factory); - if (type == G_TYPE_INVALID) - nm_log_warn (LOGD_DHCP, "dhcp-init: No usable DHCP client found! DHCP configurations will fail"); - else - nm_log_info (LOGD_DHCP, "dhcp-init: Using DHCP client '%s'", find_client_desc (NULL, type)->name); + nm_log_info (LOGD_DHCP, "dhcp-init: Using DHCP client '%s'", client_factory->name); - priv->client_type = type; + priv->client_factory = client_factory; priv->clients = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, (GDestroyNotify) g_object_unref); @@ -412,12 +391,12 @@ nm_dhcp_manager_init (NMDhcpManager *self) static void dispose (GObject *object) { - NMDhcpManagerPrivate *priv = NM_DHCP_MANAGER_GET_PRIVATE (object); + NMDhcpManagerPrivate *priv = NM_DHCP_MANAGER_GET_PRIVATE ((NMDhcpManager *) object); GList *values, *iter; if (priv->clients) { values = g_hash_table_get_values (priv->clients); - for (iter = values; iter; iter = g_list_next (iter)) + for (iter = values; iter; iter = g_list_next (iter)) remove_client (NM_DHCP_MANAGER (object), NM_DHCP_CLIENT (iter->data)); g_list_free (values); } @@ -428,7 +407,7 @@ dispose (GObject *object) static void finalize (GObject *object) { - NMDhcpManagerPrivate *priv = NM_DHCP_MANAGER_GET_PRIVATE (object); + NMDhcpManagerPrivate *priv = NM_DHCP_MANAGER_GET_PRIVATE ((NMDhcpManager *) object); g_free (priv->default_hostname); @@ -443,9 +422,6 @@ nm_dhcp_manager_class_init (NMDhcpManagerClass *manager_class) { GObjectClass *object_class = G_OBJECT_CLASS (manager_class); - g_type_class_add_private (manager_class, sizeof (NMDhcpManagerPrivate)); - - /* virtual methods */ object_class->finalize = finalize; object_class->dispose = dispose; } diff --git a/src/dhcp-manager/nm-dhcp-manager.h b/src/dhcp-manager/nm-dhcp-manager.h index df92c91c3b..32477a658e 100644 --- a/src/dhcp-manager/nm-dhcp-manager.h +++ b/src/dhcp-manager/nm-dhcp-manager.h @@ -33,13 +33,8 @@ #define NM_IS_DHCP_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP_MANAGER)) #define NM_DHCP_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP_MANAGER, NMDhcpManagerClass)) -typedef struct { - GObject parent; -} NMDhcpManager; - -typedef struct { - GObjectClass parent; -} NMDhcpManagerClass; +typedef struct _NMDhcpManager NMDhcpManager; +typedef struct _NMDhcpManagerClass NMDhcpManagerClass; GType nm_dhcp_manager_get_type (void); diff --git a/src/dhcp-manager/nm-dhcp-systemd.c b/src/dhcp-manager/nm-dhcp-systemd.c index 31c6f76089..4e3f85deb9 100644 --- a/src/dhcp-manager/nm-dhcp-systemd.c +++ b/src/dhcp-manager/nm-dhcp-systemd.c @@ -28,7 +28,6 @@ #include <ctype.h> #include <net/if_arp.h> -#include "nm-dhcp-systemd.h" #include "nm-utils.h" #include "nm-dhcp-utils.h" #include "NetworkManagerUtils.h" @@ -36,9 +35,21 @@ #include "nm-dhcp-client-logging.h" #include "systemd/nm-sd.h" -G_DEFINE_TYPE (NMDhcpSystemd, nm_dhcp_systemd, NM_TYPE_DHCP_CLIENT) +/*****************************************************************************/ + +#define NM_TYPE_DHCP_SYSTEMD (nm_dhcp_systemd_get_type ()) +#define NM_DHCP_SYSTEMD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DHCP_SYSTEMD, NMDhcpSystemd)) +#define NM_DHCP_SYSTEMD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DHCP_SYSTEMD, NMDhcpSystemdClass)) +#define NM_IS_DHCP_SYSTEMD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DHCP_SYSTEMD)) +#define NM_IS_DHCP_SYSTEMD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP_SYSTEMD)) +#define NM_DHCP_SYSTEMD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP_SYSTEMD, NMDhcpSystemdClass)) + +typedef struct _NMDhcpSystemd NMDhcpSystemd; +typedef struct _NMDhcpSystemdClass NMDhcpSystemdClass; + +static GType nm_dhcp_systemd_get_type (void); -#define NM_DHCP_SYSTEMD_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP_SYSTEMD, NMDhcpSystemdPrivate)) +/*****************************************************************************/ typedef struct { sd_dhcp_client *client4; @@ -51,7 +62,20 @@ typedef struct { gboolean info_only; } NMDhcpSystemdPrivate; -/************************************************************/ +struct _NMDhcpSystemd { + NMDhcpClient parent; + NMDhcpSystemdPrivate _priv; +}; + +struct _NMDhcpSystemdClass { + NMDhcpClientClass parent; +}; + +G_DEFINE_TYPE (NMDhcpSystemd, nm_dhcp_systemd, NM_TYPE_DHCP_CLIENT) + +#define NM_DHCP_SYSTEMD_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDhcpSystemd, NM_IS_DHCP_SYSTEMD) + +/*****************************************************************************/ #define DHCP_OPTION_NIS_DOMAIN 40 #define DHCP_OPTION_NIS_SERVERS 41 @@ -388,7 +412,7 @@ lease_to_ip4_config (const char *iface, return ip4_config; } -/************************************************************/ +/*****************************************************************************/ static char * get_leasefile_path (const char *iface, const char *uuid, gboolean ipv6) @@ -427,7 +451,7 @@ nm_dhcp_systemd_get_lease_ip_configs (const char *iface, return leases; } -/************************************************************/ +/*****************************************************************************/ static void _save_client_id (NMDhcpSystemd *self, @@ -990,7 +1014,7 @@ stop (NMDhcpClient *client, gboolean release, const GByteArray *duid) _LOGW ("failed to stop client (%d)", r); } -/***************************************************/ +/*****************************************************************************/ static void nm_dhcp_systemd_init (NMDhcpSystemd *self) @@ -1000,7 +1024,7 @@ nm_dhcp_systemd_init (NMDhcpSystemd *self) static void dispose (GObject *object) { - NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (object); + NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE ((NMDhcpSystemd *) object); g_clear_pointer (&priv->lease_file, g_free); @@ -1025,9 +1049,6 @@ nm_dhcp_systemd_class_init (NMDhcpSystemdClass *sdhcp_class) NMDhcpClientClass *client_class = NM_DHCP_CLIENT_CLASS (sdhcp_class); GObjectClass *object_class = G_OBJECT_CLASS (sdhcp_class); - g_type_class_add_private (sdhcp_class, sizeof (NMDhcpSystemdPrivate)); - - /* virtual methods */ object_class->dispose = dispose; client_class->ip4_start = ip4_start; @@ -1035,13 +1056,9 @@ nm_dhcp_systemd_class_init (NMDhcpSystemdClass *sdhcp_class) client_class->stop = stop; } -static void __attribute__((constructor)) -register_dhcp_dhclient (void) -{ - nm_g_type_init (); - _nm_dhcp_client_register (NM_TYPE_DHCP_SYSTEMD, - "internal", - NULL, - nm_dhcp_systemd_get_lease_ip_configs); -} - +const NMDhcpClientFactory _nm_dhcp_client_factory_internal = { + .name = "internal", + .get_type = nm_dhcp_systemd_get_type, + .get_path = NULL, + .get_lease_ip_configs = nm_dhcp_systemd_get_lease_ip_configs, +}; diff --git a/src/dhcp-manager/nm-dhcp-systemd.h b/src/dhcp-manager/nm-dhcp-systemd.h deleted file mode 100644 index ff24bfcd15..0000000000 --- a/src/dhcp-manager/nm-dhcp-systemd.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ -/* This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Copyright (C) 2014 Red Hat, Inc. - */ - -#ifndef NM_DHCP_SYSTEMD_H -#define NM_DHCP_SYSTEMD_H - -#include "nm-dhcp-client.h" - -#define NM_TYPE_DHCP_SYSTEMD (nm_dhcp_systemd_get_type ()) -#define NM_DHCP_SYSTEMD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DHCP_SYSTEMD, NMDhcpSystemd)) -#define NM_DHCP_SYSTEMD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DHCP_SYSTEMD, NMDhcpSystemdClass)) -#define NM_IS_DHCP_SYSTEMD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DHCP_SYSTEMD)) -#define NM_IS_DHCP_SYSTEMD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP_SYSTEMD)) -#define NM_DHCP_SYSTEMD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP_SYSTEMD, NMDhcpSystemdClass)) - -typedef struct { - NMDhcpClient parent; -} NMDhcpSystemd; - -typedef struct { - NMDhcpClientClass parent; -} NMDhcpSystemdClass; - -GType nm_dhcp_systemd_get_type (void); - -#endif /* NM_DHCP_SYSTEMD_H */ - diff --git a/src/dhcp-manager/nm-dhcp-utils.c b/src/dhcp-manager/nm-dhcp-utils.c index 593d8c5d91..a7d4f4a4ee 100644 --- a/src/dhcp-manager/nm-dhcp-utils.c +++ b/src/dhcp-manager/nm-dhcp-utils.c @@ -31,7 +31,7 @@ #include "nm-dhcp-client-logging.h" #include "nm-core-internal.h" -/********************************************/ +/*****************************************************************************/ static gboolean ip4_process_dhcpcd_rfc3442_routes (const char *iface, @@ -596,7 +596,7 @@ error: return NULL; } -/********************************************/ +/*****************************************************************************/ static void ip6_add_domain_search (gpointer data, gpointer user_data) diff --git a/src/dhcp-manager/tests/test-dhcp-dhclient.c b/src/dhcp-manager/tests/test-dhcp-dhclient.c index 77849c8c38..388e42e2ef 100644 --- a/src/dhcp-manager/tests/test-dhcp-dhclient.c +++ b/src/dhcp-manager/tests/test-dhcp-dhclient.c @@ -86,7 +86,7 @@ test_config (const char *orig, g_assert (new_client_id == NULL); } -/*******************************************/ +/*****************************************************************************/ static const char *orig_missing_expected = \ "# Created by NetworkManager\n" @@ -108,7 +108,7 @@ test_orig_missing (void) test_config (NULL, orig_missing_expected, FALSE, NULL, NULL, NULL, NULL, "eth0", NULL); } -/*******************************************/ +/*****************************************************************************/ static const char *override_client_id_orig = \ "send dhcp-client-identifier 00:30:04:20:7A:08;\n"; @@ -141,7 +141,7 @@ test_override_client_id (void) NULL); } -/*******************************************/ +/*****************************************************************************/ static const char *quote_client_id_expected = \ "# Created by NetworkManager\n" @@ -170,7 +170,7 @@ test_quote_client_id (void) NULL); } -/*******************************************/ +/*****************************************************************************/ static const char *ascii_client_id_expected = \ "# Created by NetworkManager\n" @@ -199,7 +199,7 @@ test_ascii_client_id (void) NULL); } -/*******************************************/ +/*****************************************************************************/ static const char *hex_single_client_id_expected = \ "# Created by NetworkManager\n" @@ -228,7 +228,7 @@ test_hex_single_client_id (void) NULL); } -/*******************************************/ +/*****************************************************************************/ static const char *existing_hex_client_id_orig = \ "send dhcp-client-identifier 00:30:04:20:7A:08;\n"; @@ -265,7 +265,7 @@ test_existing_hex_client_id (void) NULL); } -/*******************************************/ +/*****************************************************************************/ #define EACID "qb:cd:ef:12:34:56" @@ -304,7 +304,7 @@ test_existing_ascii_client_id (void) "eth0", NULL); } -/*******************************************/ +/*****************************************************************************/ static const char *fqdn_expected = \ "# Created by NetworkManager\n" @@ -374,7 +374,7 @@ test_fqdn_options_override (void) NULL); } -/*******************************************/ +/*****************************************************************************/ static const char *override_hostname_orig = \ "send host-name \"foobar\";\n"; @@ -407,7 +407,7 @@ test_override_hostname (void) NULL); } -/*******************************************/ +/*****************************************************************************/ static const char *override_hostname6_orig = \ "send fqdn.fqdn \"foobar\";\n"; @@ -436,7 +436,7 @@ test_override_hostname6 (void) NULL); } -/*******************************************/ +/*****************************************************************************/ static const char *nonfqdn_hostname6_expected = \ "# Created by NetworkManager\n" @@ -458,7 +458,7 @@ test_nonfqdn_hostname6 (void) NULL); } -/*******************************************/ +/*****************************************************************************/ static const char *existing_alsoreq_orig = \ "also request something;\n" @@ -494,7 +494,7 @@ test_existing_alsoreq (void) NULL); } -/*******************************************/ +/*****************************************************************************/ static const char *existing_multiline_alsoreq_orig = \ "also request something another-thing yet-another-thing\n" @@ -533,7 +533,7 @@ test_existing_multiline_alsoreq (void) NULL); } -/*******************************************/ +/*****************************************************************************/ static void test_one_duid (const char *escaped, const guint8 *unescaped, guint len) @@ -703,7 +703,7 @@ test_write_existing_commented_duid (void) g_free (contents); } -/*******************************************/ +/*****************************************************************************/ static void test_read_lease_ip4_config_basic (void) @@ -827,7 +827,7 @@ test_read_lease_ip4_config_expect_failure (gconstpointer user_data) g_free (contents); } -/*******************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/src/dns-manager/nm-dns-dnsmasq.c b/src/dns-manager/nm-dns-dnsmasq.c index 69b260687e..6f2ab3eba6 100644 --- a/src/dns-manager/nm-dns-dnsmasq.c +++ b/src/dns-manager/nm-dns-dnsmasq.c @@ -20,6 +20,8 @@ #include "nm-default.h" +#include "nm-dns-dnsmasq.h" + #include <stdlib.h> #include <unistd.h> #include <sys/types.h> @@ -28,7 +30,6 @@ #include <sys/stat.h> #include <linux/if.h> -#include "nm-dns-dnsmasq.h" #include "nm-core-internal.h" #include "nm-platform.h" #include "nm-utils.h" @@ -37,16 +38,14 @@ #include "nm-bus-manager.h" #include "NetworkManagerUtils.h" -G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsmasq, NM_TYPE_DNS_PLUGIN) - -#define NM_DNS_DNSMASQ_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNS_DNSMASQ, NMDnsDnsmasqPrivate)) - #define PIDFILE NMRUNDIR "/dnsmasq.pid" #define CONFDIR NMCONFDIR "/dnsmasq.d" #define DNSMASQ_DBUS_SERVICE "org.freedesktop.NetworkManager.dnsmasq" #define DNSMASQ_DBUS_PATH "/uk/org/thekelleys/dnsmasq" +/*****************************************************************************/ + typedef struct { GDBusProxy *dnsmasq; GCancellable *dnsmasq_cancellable; @@ -56,6 +55,19 @@ typedef struct { GVariant *set_server_ex_args; } NMDnsDnsmasqPrivate; +struct _NMDnsDnsmasq { + NMDnsPlugin parent; + NMDnsDnsmasqPrivate _priv; +}; + +struct _NMDnsDnsmasqClass { + NMDnsPluginClass parent; +}; + +G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsmasq, NM_TYPE_DNS_PLUGIN) + +#define NM_DNS_DNSMASQ_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDnsDnsmasq, NM_IS_DNS_DNSMASQ) + /*****************************************************************************/ #define _NMLOG_DOMAIN LOGD_DNS @@ -605,7 +617,7 @@ update (NMDnsPlugin *plugin, return TRUE; } -/****************************************************************/ +/*****************************************************************************/ static void child_quit (NMDnsPlugin *plugin, gint status) @@ -637,7 +649,7 @@ child_quit (NMDnsPlugin *plugin, gint status) g_signal_emit_by_name (self, NM_DNS_PLUGIN_FAILED); } -/****************************************************************/ +/*****************************************************************************/ static gboolean is_caching (NMDnsPlugin *plugin) @@ -651,23 +663,23 @@ get_name (NMDnsPlugin *plugin) return "dnsmasq"; } -/****************************************************************/ +/*****************************************************************************/ -NMDnsPlugin * -nm_dns_dnsmasq_new (void) +static void +nm_dns_dnsmasq_init (NMDnsDnsmasq *self) { - return g_object_new (NM_TYPE_DNS_DNSMASQ, NULL); } -static void -nm_dns_dnsmasq_init (NMDnsDnsmasq *self) +NMDnsPlugin * +nm_dns_dnsmasq_new (void) { + return g_object_new (NM_TYPE_DNS_DNSMASQ, NULL); } static void dispose (GObject *object) { - NMDnsDnsmasqPrivate *priv = NM_DNS_DNSMASQ_GET_PRIVATE (object); + NMDnsDnsmasqPrivate *priv = NM_DNS_DNSMASQ_GET_PRIVATE ((NMDnsDnsmasq *) object); nm_clear_g_cancellable (&priv->dnsmasq_cancellable); nm_clear_g_cancellable (&priv->update_cancellable); @@ -685,8 +697,6 @@ nm_dns_dnsmasq_class_init (NMDnsDnsmasqClass *dns_class) NMDnsPluginClass *plugin_class = NM_DNS_PLUGIN_CLASS (dns_class); GObjectClass *object_class = G_OBJECT_CLASS (dns_class); - g_type_class_add_private (dns_class, sizeof (NMDnsDnsmasqPrivate)); - object_class->dispose = dispose; plugin_class->child_quit = child_quit; @@ -694,4 +704,3 @@ nm_dns_dnsmasq_class_init (NMDnsDnsmasqClass *dns_class) plugin_class->update = update; plugin_class->get_name = get_name; } - diff --git a/src/dns-manager/nm-dns-dnsmasq.h b/src/dns-manager/nm-dns-dnsmasq.h index f0393c1222..cbba434bf3 100644 --- a/src/dns-manager/nm-dns-dnsmasq.h +++ b/src/dns-manager/nm-dns-dnsmasq.h @@ -28,17 +28,11 @@ #define NM_IS_DNS_DNSMASQ_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DNS_DNSMASQ)) #define NM_DNS_DNSMASQ_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DNS_DNSMASQ, NMDnsDnsmasqClass)) -typedef struct { - NMDnsPlugin parent; -} NMDnsDnsmasq; - -typedef struct { - NMDnsPluginClass parent; -} NMDnsDnsmasqClass; +typedef struct _NMDnsDnsmasq NMDnsDnsmasq; +typedef struct _NMDnsDnsmasqClass NMDnsDnsmasqClass; GType nm_dns_dnsmasq_get_type (void); NMDnsPlugin *nm_dns_dnsmasq_new (void); #endif /* __NETWORKMANAGER_DNS_DNSMASQ_H__ */ - diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c index c1d2bf77f6..33f2074ead 100644 --- a/src/dns-manager/nm-dns-manager.c +++ b/src/dns-manager/nm-dns-manager.c @@ -90,7 +90,7 @@ typedef enum { SR_ERROR } SpawnResult; -/*********************************************************************************************/ +/*****************************************************************************/ #define _NMLOG_PREFIX_NAME "dns-mgr" #define _NMLOG_DOMAIN LOGD_DNS @@ -112,7 +112,7 @@ typedef enum { } \ } G_STMT_END -/*********************************************************************************************/ +/*****************************************************************************/ typedef struct { GPtrArray *configs; @@ -1519,7 +1519,7 @@ nm_dns_manager_end_updates (NMDnsManager *self, const char *func) memset (priv->prev_hash, 0, sizeof (priv->prev_hash)); } -/******************************************************************/ +/*****************************************************************************/ static gboolean _clear_plugin (NMDnsManager *self) diff --git a/src/dns-manager/nm-dns-plugin.c b/src/dns-manager/nm-dns-plugin.c index f065a1ceca..3a3bc646f7 100644 --- a/src/dns-manager/nm-dns-plugin.c +++ b/src/dns-manager/nm-dns-plugin.c @@ -19,6 +19,8 @@ #include "nm-default.h" +#include "nm-dns-plugin.h" + #include <string.h> #include <stdlib.h> #include <unistd.h> @@ -26,29 +28,30 @@ #include <sys/wait.h> #include "nm-core-internal.h" - -#include "nm-dns-plugin.h" #include "NetworkManagerUtils.h" -typedef struct { +/*****************************************************************************/ + +enum { + FAILED, + CHILD_QUIT, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +typedef struct _NMDnsPluginPrivate { GPid pid; guint watch_id; char *progname; char *pidfile; } NMDnsPluginPrivate; -#define NM_DNS_PLUGIN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNS_PLUGIN, NMDnsPluginPrivate)) - G_DEFINE_TYPE_EXTENDED (NMDnsPlugin, nm_dns_plugin, G_TYPE_OBJECT, G_TYPE_FLAG_ABSTRACT, {}) -enum { - FAILED, - CHILD_QUIT, - LAST_SIGNAL -}; -static guint signals[LAST_SIGNAL] = { 0 }; +#define NM_DNS_PLUGIN_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR (self, NMDnsPlugin, NM_IS_DNS_PLUGIN) -/******************************************************************************/ +/*****************************************************************************/ #define _NMLOG_PREFIX_NAME "dns-plugin" #define _NMLOG_DOMAIN LOGD_DNS @@ -70,7 +73,7 @@ static guint signals[LAST_SIGNAL] = { 0 }; } \ } G_STMT_END -/******************************************************************************/ +/*****************************************************************************/ gboolean nm_dns_plugin_update (NMDnsPlugin *self, @@ -105,7 +108,7 @@ nm_dns_plugin_get_name (NMDnsPlugin *self) return NM_DNS_PLUGIN_GET_CLASS (self)->get_name (self); } -/********************************************/ +/*****************************************************************************/ static void _clear_pidfile (NMDnsPlugin *self) @@ -260,11 +263,12 @@ nm_dns_plugin_stop (NMDnsPlugin *self) nm_dns_plugin_child_kill (self); } -/********************************************/ +/*****************************************************************************/ static void nm_dns_plugin_init (NMDnsPlugin *self) { + self->_priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_DNS_PLUGIN, NMDnsPluginPrivate); } static void @@ -284,17 +288,20 @@ nm_dns_plugin_class_init (NMDnsPluginClass *plugin_class) g_type_class_add_private (plugin_class, sizeof (NMDnsPluginPrivate)); - /* virtual methods */ object_class->dispose = dispose; + plugin_class->is_caching = is_caching; - /* signals */ + /* Emitted by the plugin and consumed by NMDnsManager when + * some error happens with the nameserver subprocess. Causes NM to fall + * back to writing out a non-local-caching resolv.conf until the next + * DNS update. + */ signals[FAILED] = g_signal_new (NM_DNS_PLUGIN_FAILED, G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMDnsPluginClass, failed), - NULL, NULL, + 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); @@ -307,4 +314,3 @@ nm_dns_plugin_class_init (NMDnsPluginClass *plugin_class) g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); } - diff --git a/src/dns-manager/nm-dns-plugin.h b/src/dns-manager/nm-dns-plugin.h index e24bc1732a..12109441f9 100644 --- a/src/dns-manager/nm-dns-plugin.h +++ b/src/dns-manager/nm-dns-plugin.h @@ -32,8 +32,11 @@ #define NM_DNS_PLUGIN_FAILED "failed" #define NM_DNS_PLUGIN_CHILD_QUIT "child-quit" +struct _NMDnsPluginPrivate; + typedef struct { GObject parent; + struct _NMDnsPluginPrivate *_priv; } NMDnsPlugin; typedef struct { @@ -62,13 +65,6 @@ typedef struct { /* Signals */ - /* Emitted by the plugin and consumed by NMDnsManager when - * some error happens with the nameserver subprocess. Causes NM to fall - * back to writing out a non-local-caching resolv.conf until the next - * DNS update. - */ - void (*failed) (NMDnsPlugin *self); - /* Emitted by the plugin base class when the nameserver subprocess * quits. This signal is consumed by the plugin subclasses and not * by NMDnsManager. If the subclass decides the exit status (as returned @@ -108,4 +104,3 @@ GPid nm_dns_plugin_child_pid (NMDnsPlugin *self); gboolean nm_dns_plugin_child_kill (NMDnsPlugin *self); #endif /* __NETWORKMANAGER_DNS_PLUGIN_H__ */ - diff --git a/src/dns-manager/nm-dns-systemd-resolved.c b/src/dns-manager/nm-dns-systemd-resolved.c index 6d9867b84a..0432f83eb1 100644 --- a/src/dns-manager/nm-dns-systemd-resolved.c +++ b/src/dns-manager/nm-dns-systemd-resolved.c @@ -41,20 +41,18 @@ #include "nm-device.h" #include "NetworkManagerUtils.h" -G_DEFINE_TYPE (NMDnsSystemdResolved, nm_dns_systemd_resolved, NM_TYPE_DNS_PLUGIN) - -#define NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE(o) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNS_SYSTEMD_RESOLVED, \ - NMDnsSystemdResolvedPrivate)) - #define SYSTEMD_RESOLVED_DBUS_SERVICE "org.freedesktop.resolve1" #define SYSTEMD_RESOLVED_DBUS_PATH "/org/freedesktop/resolve1" +/*****************************************************************************/ + typedef struct { int ifindex; GList *configs; } InterfaceConfig; +/*****************************************************************************/ + typedef struct { GDBusProxy *resolve; GCancellable *init_cancellable; @@ -63,6 +61,19 @@ typedef struct { GQueue domain_updates; } NMDnsSystemdResolvedPrivate; +struct _NMDnsSystemdResolved { + NMDnsPlugin parent; + NMDnsSystemdResolvedPrivate _priv; +}; + +struct _NMDnsSystemdResolvedClass { + NMDnsPluginClass parent; +}; + +G_DEFINE_TYPE (NMDnsSystemdResolved, nm_dns_systemd_resolved, NM_TYPE_DNS_PLUGIN) + +#define NM_DNS_SYSTEMD_RESOLVED_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDnsSystemdResolved, NM_IS_DNS_SYSTEMD_RESOLVED) + /*****************************************************************************/ #define _NMLOG_DOMAIN LOGD_DNS @@ -303,7 +314,7 @@ update (NMDnsPlugin *plugin, return TRUE; } -/****************************************************************/ +/*****************************************************************************/ static gboolean is_caching (NMDnsPlugin *plugin) @@ -317,13 +328,7 @@ get_name (NMDnsPlugin *plugin) return "systemd-resolved"; } -/****************************************************************/ - -NMDnsPlugin * -nm_dns_systemd_resolved_new (void) -{ - return g_object_new (NM_TYPE_DNS_SYSTEMD_RESOLVED, NULL); -} +/*****************************************************************************/ static void resolved_proxy_created (GObject *source, GAsyncResult *r, gpointer user_data) @@ -350,6 +355,7 @@ resolved_proxy_created (GObject *source, GAsyncResult *r, gpointer user_data) send_updates (self); } +/*****************************************************************************/ static void nm_dns_systemd_resolved_init (NMDnsSystemdResolved *self) @@ -380,6 +386,12 @@ nm_dns_systemd_resolved_init (NMDnsSystemdResolved *self) self); } +NMDnsPlugin * +nm_dns_systemd_resolved_new (void) +{ + return g_object_new (NM_TYPE_DNS_SYSTEMD_RESOLVED, NULL); +} + static void dispose (GObject *object) { @@ -400,12 +412,9 @@ nm_dns_systemd_resolved_class_init (NMDnsSystemdResolvedClass *dns_class) NMDnsPluginClass *plugin_class = NM_DNS_PLUGIN_CLASS (dns_class); GObjectClass *object_class = G_OBJECT_CLASS (dns_class); - g_type_class_add_private (dns_class, sizeof (NMDnsSystemdResolvedPrivate)); - object_class->dispose = dispose; plugin_class->is_caching = is_caching; plugin_class->update = update; plugin_class->get_name = get_name; } - diff --git a/src/dns-manager/nm-dns-systemd-resolved.h b/src/dns-manager/nm-dns-systemd-resolved.h index 45c64b39ad..800a60c154 100644 --- a/src/dns-manager/nm-dns-systemd-resolved.h +++ b/src/dns-manager/nm-dns-systemd-resolved.h @@ -29,17 +29,11 @@ #define NM_IS_DNS_SYSTEMD_RESOLVED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DNS_SYSTEMD_RESOLVED)) #define NM_DNS_SYSTEMD_RESOLVED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DNS_SYSTEMD_RESOLVED, NMDnsSystemdResolvedClass)) -typedef struct { - NMDnsPlugin parent; -} NMDnsSystemdResolved; - -typedef struct { - NMDnsPluginClass parent; -} NMDnsSystemdResolvedClass; +typedef struct _NMDnsSystemdResolved NMDnsSystemdResolved; +typedef struct _NMDnsSystemdResolvedClass NMDnsSystemdResolvedClass; GType nm_dns_systemd_resolved_get_type (void); NMDnsPlugin *nm_dns_systemd_resolved_new (void); #endif /* __NETWORKMANAGER_DNS_SYSTEMD_RESOLVED_H__ */ - diff --git a/src/dns-manager/nm-dns-unbound.c b/src/dns-manager/nm-dns-unbound.c index 66a287fdf5..3659beacba 100644 --- a/src/dns-manager/nm-dns-unbound.c +++ b/src/dns-manager/nm-dns-unbound.c @@ -20,11 +20,22 @@ #include "nm-default.h" #include "nm-dns-unbound.h" + #include "NetworkManagerUtils.h" +/*****************************************************************************/ + +struct _NMDnsUnbound { + NMDnsPlugin parent; +}; + +struct _NMDnsUnboundClass { + NMDnsPluginClass parent; +}; + G_DEFINE_TYPE (NMDnsUnbound, nm_dns_unbound, NM_TYPE_DNS_PLUGIN) -/*******************************************/ +/*****************************************************************************/ static gboolean update (NMDnsPlugin *plugin, @@ -56,17 +67,17 @@ get_name (NMDnsPlugin *plugin) return "unbound"; } -/****************************************************************/ +/*****************************************************************************/ -NMDnsPlugin * -nm_dns_unbound_new (void) +static void +nm_dns_unbound_init (NMDnsUnbound *unbound) { - return g_object_new (NM_TYPE_DNS_UNBOUND, NULL); } -static void -nm_dns_unbound_init (NMDnsUnbound *unbound) +NMDnsPlugin * +nm_dns_unbound_new (void) { + return g_object_new (NM_TYPE_DNS_UNBOUND, NULL); } static void diff --git a/src/dns-manager/nm-dns-unbound.h b/src/dns-manager/nm-dns-unbound.h index abc056b926..100ff2c470 100644 --- a/src/dns-manager/nm-dns-unbound.h +++ b/src/dns-manager/nm-dns-unbound.h @@ -27,13 +27,8 @@ #define NM_IS_DNS_UNBOUND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DNS_UNBOUND)) #define NM_DNS_UNBOUND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DNS_UNBOUND, NMDnsUnboundClass)) -typedef struct { - NMDnsPlugin parent; -} NMDnsUnbound; - -typedef struct { - NMDnsPluginClass parent; -} NMDnsUnboundClass; +typedef struct _NMDnsUnbound NMDnsUnbound; +typedef struct _NMDnsUnboundClass NMDnsUnboundClass; GType nm_dns_unbound_get_type (void); diff --git a/src/dnsmasq-manager/nm-dnsmasq-manager.c b/src/dnsmasq-manager/nm-dnsmasq-manager.c index 7b72594434..b4547cb417 100644 --- a/src/dnsmasq-manager/nm-dnsmasq-manager.c +++ b/src/dnsmasq-manager/nm-dnsmasq-manager.c @@ -20,6 +20,8 @@ #include "nm-default.h" +#include "nm-dnsmasq-manager.h" + #include <sys/types.h> #include <sys/wait.h> #include <signal.h> @@ -28,21 +30,21 @@ #include <arpa/inet.h> #include <stdlib.h> -#include "nm-dnsmasq-manager.h" #include "nm-dnsmasq-utils.h" #include "nm-utils.h" #include "NetworkManagerUtils.h" #include "nm-core-internal.h" -#define _NMLOG_DOMAIN LOGD_SHARING -#define _NMLOG_PREFIX_NAME "dnsmasq-manager" -#define _NMLOG(level, ...) \ - G_STMT_START { \ - nm_log ((level), _NMLOG_DOMAIN, \ - "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - _NMLOG_PREFIX_NAME": " \ - _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ - } G_STMT_END +#define CONFDIR NMCONFDIR "/dnsmasq-shared.d" + +/*****************************************************************************/ + +enum { + STATE_CHANGED, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { char *iface; @@ -51,19 +53,32 @@ typedef struct { guint dm_watch_id; } NMDnsMasqManagerPrivate; -#define NM_DNSMASQ_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DNSMASQ_MANAGER, NMDnsMasqManagerPrivate)) +struct _NMDnsMasqManager { + GObject parent; + NMDnsMasqManagerPrivate _priv; +}; -#define CONFDIR NMCONFDIR "/dnsmasq-shared.d" +struct _NMDnsMasqManagerClass { + GObjectClass parent; +}; G_DEFINE_TYPE (NMDnsMasqManager, nm_dnsmasq_manager, G_TYPE_OBJECT) -enum { - STATE_CHANGED, +#define NM_DNSMASQ_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDnsMasqManager, NM_IS_DNSMASQ_MANAGER) - LAST_SIGNAL -}; +/*****************************************************************************/ -static guint signals[LAST_SIGNAL] = { 0 }; +#define _NMLOG_DOMAIN LOGD_SHARING +#define _NMLOG_PREFIX_NAME "dnsmasq-manager" +#define _NMLOG(level, ...) \ + G_STMT_START { \ + nm_log ((level), _NMLOG_DOMAIN, \ + "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + _NMLOG_PREFIX_NAME": " \ + _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } G_STMT_END + +/*****************************************************************************/ typedef struct { GPtrArray *array; @@ -108,7 +123,7 @@ nm_cmd_line_add_string (NMCmdLine *cmd, const char *str) g_ptr_array_add (cmd->array, g_string_chunk_insert (cmd->chunk, str)); } -/*******************************************/ +/*****************************************************************************/ static void dm_watch_cb (GPid pid, gint status, gpointer user_data) @@ -334,6 +349,13 @@ nm_dnsmasq_manager_stop (NMDnsMasqManager *manager) unlink (priv->pidfile); } +/*****************************************************************************/ + +static void +nm_dnsmasq_manager_init (NMDnsMasqManager *manager) +{ +} + NMDnsMasqManager * nm_dnsmasq_manager_new (const char *iface) { @@ -350,14 +372,9 @@ nm_dnsmasq_manager_new (const char *iface) } static void -nm_dnsmasq_manager_init (NMDnsMasqManager *manager) -{ -} - -static void finalize (GObject *object) { - NMDnsMasqManagerPrivate *priv = NM_DNSMASQ_MANAGER_GET_PRIVATE (object); + NMDnsMasqManagerPrivate *priv = NM_DNSMASQ_MANAGER_GET_PRIVATE ((NMDnsMasqManager *) object); nm_dnsmasq_manager_stop (NM_DNSMASQ_MANAGER (object)); @@ -372,11 +389,8 @@ nm_dnsmasq_manager_class_init (NMDnsMasqManagerClass *manager_class) { GObjectClass *object_class = G_OBJECT_CLASS (manager_class); - g_type_class_add_private (manager_class, sizeof (NMDnsMasqManagerPrivate)); - object_class->finalize = finalize; - /* signals */ signals[STATE_CHANGED] = g_signal_new (NM_DNS_MASQ_MANAGER_STATE_CHANGED, G_OBJECT_CLASS_TYPE (object_class), diff --git a/src/dnsmasq-manager/nm-dnsmasq-manager.h b/src/dnsmasq-manager/nm-dnsmasq-manager.h index b610b4987b..a0ad295cd4 100644 --- a/src/dnsmasq-manager/nm-dnsmasq-manager.h +++ b/src/dnsmasq-manager/nm-dnsmasq-manager.h @@ -35,18 +35,12 @@ typedef enum { NM_DNSMASQ_STATUS_UNKNOWN, - NM_DNSMASQ_STATUS_DEAD, NM_DNSMASQ_STATUS_RUNNING, } NMDnsMasqStatus; -typedef struct { - GObject parent; -} NMDnsMasqManager; - -typedef struct { - GObjectClass parent; -} NMDnsMasqManagerClass; +typedef struct _NMDnsMasqManager NMDnsMasqManager; +typedef struct _NMDnsMasqManagerClass NMDnsMasqManagerClass; GType nm_dnsmasq_manager_get_type (void); diff --git a/src/dnsmasq-manager/tests/test-dnsmasq-utils.c b/src/dnsmasq-manager/tests/test-dnsmasq-utils.c index cf6dab50bb..92f32de87f 100644 --- a/src/dnsmasq-manager/tests/test-dnsmasq-utils.c +++ b/src/dnsmasq-manager/tests/test-dnsmasq-utils.c @@ -83,7 +83,7 @@ test_address_ranges (void) g_free (error_desc); } -/*******************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/src/nm-activation-request.c b/src/nm-act-request.c index 6da89432a8..40c1efa2e6 100644 --- a/src/nm-activation-request.c +++ b/src/nm-act-request.c @@ -21,12 +21,13 @@ #include "nm-default.h" +#include "nm-act-request.h" + #include <string.h> #include <stdlib.h> #include <sys/wait.h> #include <unistd.h> -#include "nm-activation-request.h" #include "nm-setting-wireless-security.h" #include "nm-setting-8021x.h" #include "nm-device.h" @@ -34,12 +35,6 @@ #include "nm-settings-connection.h" #include "nm-auth-subject.h" -G_DEFINE_TYPE (NMActRequest, nm_act_request, NM_TYPE_ACTIVE_CONNECTION) - -#define NM_ACT_REQUEST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ - NM_TYPE_ACT_REQUEST, \ - NMActRequestPrivate)) - typedef struct { char *table; char *rule; @@ -51,6 +46,15 @@ typedef struct { GSList *share_rules; } NMActRequestPrivate; +struct _NMActRequest { + NMActiveConnection parent; + NMActRequestPrivate _priv; +}; + +typedef struct { + NMActiveConnectionClass parent; +} NMActRequestClass; + enum { PROP_0, PROP_IP4_CONFIG, @@ -61,7 +65,11 @@ enum { LAST_PROP }; -/*******************************************************************/ +G_DEFINE_TYPE (NMActRequest, nm_act_request, NM_TYPE_ACTIVE_CONNECTION) + +#define NM_ACT_REQUEST_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMActRequest, NM_IS_ACT_REQUEST) + +/*****************************************************************************/ NMSettingsConnection * nm_act_request_get_settings_connection (NMActRequest *req) @@ -79,7 +87,7 @@ nm_act_request_get_applied_connection (NMActRequest *req) return nm_active_connection_get_applied_connection (NM_ACTIVE_CONNECTION (req)); } -/*******************************************************************/ +/*****************************************************************************/ struct _NMActRequestGetSecretsCallId { NMActRequest *self; @@ -245,7 +253,7 @@ nm_act_request_clear_secrets (NMActRequest *self) nm_active_connection_clear_secrets ((NMActiveConnection *) self); } -/********************************************************************/ +/*****************************************************************************/ static void clear_share_rules (NMActRequest *req) @@ -346,7 +354,7 @@ nm_act_request_add_share_rule (NMActRequest *req, priv->share_rules = g_slist_prepend (priv->share_rules, rule); } -/********************************************************************/ +/*****************************************************************************/ static void device_notify (GObject *object, @@ -456,7 +464,43 @@ master_failed (NMActiveConnection *self) nm_active_connection_set_state (self, NM_ACTIVE_CONNECTION_STATE_DEACTIVATED); } -/********************************************************************/ +/*****************************************************************************/ + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NMDevice *device; + + device = nm_active_connection_get_device (NM_ACTIVE_CONNECTION (object)); + if (!device) { + g_value_set_string (value, "/"); + return; + } + + switch (prop_id) { + case PROP_IP4_CONFIG: + g_object_get_property (G_OBJECT (device), NM_DEVICE_IP4_CONFIG, value); + break; + case PROP_DHCP4_CONFIG: + g_object_get_property (G_OBJECT (device), NM_DEVICE_DHCP4_CONFIG, value); + break; + case PROP_IP6_CONFIG: + g_object_get_property (G_OBJECT (device), NM_DEVICE_IP6_CONFIG, value); + break; + case PROP_DHCP6_CONFIG: + g_object_get_property (G_OBJECT (device), NM_DEVICE_DHCP6_CONFIG, value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +nm_act_request_init (NMActRequest *req) +{ +} /** * nm_act_request_new: @@ -494,11 +538,6 @@ nm_act_request_new (NMSettingsConnection *settings_connection, } static void -nm_act_request_init (NMActRequest *req) -{ -} - -static void dispose (GObject *object) { NMActRequest *self = NM_ACT_REQUEST (object); @@ -518,44 +557,11 @@ dispose (GObject *object) } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - NMDevice *device; - - device = nm_active_connection_get_device (NM_ACTIVE_CONNECTION (object)); - if (!device) { - g_value_set_string (value, "/"); - return; - } - - switch (prop_id) { - case PROP_IP4_CONFIG: - g_object_get_property (G_OBJECT (device), NM_DEVICE_IP4_CONFIG, value); - break; - case PROP_DHCP4_CONFIG: - g_object_get_property (G_OBJECT (device), NM_DEVICE_DHCP4_CONFIG, value); - break; - case PROP_IP6_CONFIG: - g_object_get_property (G_OBJECT (device), NM_DEVICE_IP6_CONFIG, value); - break; - case PROP_DHCP6_CONFIG: - g_object_get_property (G_OBJECT (device), NM_DEVICE_DHCP6_CONFIG, value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void nm_act_request_class_init (NMActRequestClass *req_class) { GObjectClass *object_class = G_OBJECT_CLASS (req_class); NMActiveConnectionClass *active_class = NM_ACTIVE_CONNECTION_CLASS (req_class); - g_type_class_add_private (req_class, sizeof (NMActRequestPrivate)); - /* virtual methods */ object_class->dispose = dispose; object_class->get_property = get_property; diff --git a/src/nm-activation-request.h b/src/nm-act-request.h index 5a170d8976..2443633f00 100644 --- a/src/nm-activation-request.h +++ b/src/nm-act-request.h @@ -18,8 +18,8 @@ * (C) Copyright 2005 - 2012 Red Hat, Inc. */ -#ifndef __NETWORKMANAGER_ACTIVATION_REQUEST_H__ -#define __NETWORKMANAGER_ACTIVATION_REQUEST_H__ +#ifndef __NM_ACT_REQUEST_H__ +#define __NM_ACT_REQUEST_H__ #include "nm-connection.h" #include "nm-active-connection.h" @@ -34,15 +34,6 @@ struct _NMActRequestGetSecretsCallId; typedef struct _NMActRequestGetSecretsCallId *NMActRequestGetSecretsCallId; -struct _NMActRequest { - NMActiveConnection parent; -}; - -typedef struct { - NMActiveConnectionClass parent; - -} NMActRequestClass; - GType nm_act_request_get_type (void); NMActRequest *nm_act_request_new (NMSettingsConnection *settings_connection, @@ -81,5 +72,5 @@ NMActRequestGetSecretsCallId nm_act_request_get_secrets (NMActRequest *req, void nm_act_request_cancel_secrets (NMActRequest *req, NMActRequestGetSecretsCallId call_id); void nm_act_request_clear_secrets (NMActRequest *self); -#endif /* __NETWORKMANAGER_ACTIVATION_REQUEST_H__ */ +#endif /* __NM_ACT_REQUEST_H__ */ diff --git a/src/nm-active-connection.c b/src/nm-active-connection.c index 503c53191b..1eba44959f 100644 --- a/src/nm-active-connection.c +++ b/src/nm-active-connection.c @@ -34,14 +34,7 @@ #include "nmdbus-active-connection.h" -/* Base class for anything implementing the Connection.Active D-Bus interface */ -G_DEFINE_ABSTRACT_TYPE (NMActiveConnection, nm_active_connection, NM_TYPE_EXPORTED_OBJECT) - -#define NM_ACTIVE_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ - NM_TYPE_ACTIVE_CONNECTION, \ - NMActiveConnectionPrivate)) - -typedef struct { +typedef struct _NMActiveConnectionPrivate { NMSettingsConnection *settings_connection; NMConnection *applied_connection; char *specific_object; @@ -105,10 +98,14 @@ enum { }; static guint signals[LAST_SIGNAL] = { 0 }; +G_DEFINE_ABSTRACT_TYPE (NMActiveConnection, nm_active_connection, NM_TYPE_EXPORTED_OBJECT) + +#define NM_ACTIVE_CONNECTION_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR(self, NMActiveConnection, NM_IS_ACTIVE_CONNECTION) + static void check_master_ready (NMActiveConnection *self); static void _device_cleanup (NMActiveConnection *self); -/****************************************************************/ +/*****************************************************************************/ #define _NMLOG_DOMAIN LOGD_DEVICE #define _NMLOG_PREFIX_NAME "active-connection" @@ -123,7 +120,7 @@ static void _device_cleanup (NMActiveConnection *self); _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ } G_STMT_END -/****************************************************************/ +/*****************************************************************************/ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_state_to_string, NMActiveConnectionState, NM_UTILS_LOOKUP_DEFAULT (NULL), @@ -135,7 +132,7 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_state_to_string, NMActiveConnectionState, ); #define state_to_string(state) NM_UTILS_LOOKUP_STR (_state_to_string, state) -/****************************************************************/ +/*****************************************************************************/ static void _settings_connection_updated (NMSettingsConnection *connection, @@ -336,7 +333,7 @@ nm_active_connection_has_unmodified_applied_connection (NMActiveConnection *self compare_flags); } -/*******************************************************************/ +/*****************************************************************************/ void nm_active_connection_clear_secrets (NMActiveConnection *self) @@ -354,7 +351,7 @@ nm_active_connection_clear_secrets (NMActiveConnection *self) nm_connection_clear_secrets (priv->applied_connection); } -/*******************************************************************/ +/*****************************************************************************/ const char * nm_active_connection_get_specific_object (NMActiveConnection *self) @@ -718,7 +715,7 @@ nm_active_connection_get_assumed (NMActiveConnection *self) return NM_ACTIVE_CONNECTION_GET_PRIVATE (self)->assumed; } -/****************************************************************/ +/*****************************************************************************/ static void unwatch_parent (NMActiveConnection *self, gboolean unref); @@ -782,7 +779,7 @@ nm_active_connection_set_parent (NMActiveConnection *self, NMActiveConnection *p g_object_weak_ref ((GObject *) priv->parent, parent_destroyed, self); } -/****************************************************************/ +/*****************************************************************************/ static void auth_done (NMAuthChain *chain, @@ -901,7 +898,7 @@ nm_active_connection_authorize (NMActiveConnection *self, priv->user_data2 = user_data2; } -/****************************************************************/ +/*****************************************************************************/ static guint64 _version_id_new (void) @@ -932,100 +929,34 @@ nm_active_connection_version_id_bump (NMActiveConnection *self) return priv->version_id; } -/****************************************************************/ +/*****************************************************************************/ static void -nm_active_connection_init (NMActiveConnection *self) -{ - NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self); - - _LOGT ("creating"); - - priv->version_id = _version_id_new (); -} - -static void -constructed (GObject *object) +_device_cleanup (NMActiveConnection *self) { - NMActiveConnection *self = (NMActiveConnection *) object; NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self); - G_OBJECT_CLASS (nm_active_connection_parent_class)->constructed (object); - - if (!priv->applied_connection && priv->settings_connection) { - priv->applied_connection = - nm_simple_connection_new_clone ((NMConnection *) priv->settings_connection); + if (priv->device) { + g_signal_handlers_disconnect_by_func (priv->device, G_CALLBACK (device_state_changed), self); + g_signal_handlers_disconnect_by_func (priv->device, G_CALLBACK (device_master_changed), self); + g_signal_handlers_disconnect_by_func (priv->device, G_CALLBACK (device_metered_changed), self); } - if (priv->applied_connection) - nm_connection_clear_secrets (priv->applied_connection); - - _LOGD ("constructed (%s, version-id %llu)", G_OBJECT_TYPE_NAME (self), (long long unsigned) priv->version_id); + if (priv->pending_activation_id) { + nm_device_remove_pending_action (priv->device, priv->pending_activation_id, TRUE); + g_clear_pointer (&priv->pending_activation_id, g_free); + } - g_return_if_fail (priv->subject); + g_clear_object (&priv->device); } -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - NMActiveConnection *self = (NMActiveConnection *) object; - NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self); - const char *tmp; - NMSettingsConnection *con; - NMConnection *acon; - - switch (prop_id) { - case PROP_INT_SETTINGS_CONNECTION: - /* construct-only */ - con = g_value_get_object (value); - if (con) - _set_settings_connection (self, con); - break; - case PROP_INT_APPLIED_CONNECTION: - /* construct-only */ - acon = g_value_get_object (value); - if (acon) - priv->applied_connection = g_object_ref (acon); - break; - case PROP_INT_DEVICE: - /* construct-only */ - nm_active_connection_set_device (self, g_value_get_object (value)); - break; - case PROP_INT_SUBJECT: - priv->subject = g_value_dup_object (value); - break; - case PROP_INT_MASTER: - nm_active_connection_set_master (self, g_value_get_object (value)); - break; - case PROP_SPECIFIC_OBJECT: - tmp = g_value_get_string (value); - /* NM uses "/" to mean NULL */ - if (g_strcmp0 (tmp, "/") != 0) - priv->specific_object = g_strdup (tmp); - break; - case PROP_DEFAULT: - priv->is_default = !!g_value_get_boolean (value); - break; - case PROP_DEFAULT6: - priv->is_default6 = !!g_value_get_boolean (value); - break; - case PROP_VPN: - priv->vpn = g_value_get_boolean (value); - break; - case PROP_MASTER: - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} +/*****************************************************************************/ static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (object); + NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE ((NMActiveConnection *) object); GPtrArray *devices; NMDevice *master_device = NULL; @@ -1102,22 +1033,95 @@ get_property (GObject *object, guint prop_id, } static void -_device_cleanup (NMActiveConnection *self) +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) { + NMActiveConnection *self = (NMActiveConnection *) object; NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self); + const char *tmp; + NMSettingsConnection *con; + NMConnection *acon; - if (priv->device) { - g_signal_handlers_disconnect_by_func (priv->device, G_CALLBACK (device_state_changed), self); - g_signal_handlers_disconnect_by_func (priv->device, G_CALLBACK (device_master_changed), self); - g_signal_handlers_disconnect_by_func (priv->device, G_CALLBACK (device_metered_changed), self); + switch (prop_id) { + case PROP_INT_SETTINGS_CONNECTION: + /* construct-only */ + con = g_value_get_object (value); + if (con) + _set_settings_connection (self, con); + break; + case PROP_INT_APPLIED_CONNECTION: + /* construct-only */ + acon = g_value_get_object (value); + if (acon) + priv->applied_connection = g_object_ref (acon); + break; + case PROP_INT_DEVICE: + /* construct-only */ + nm_active_connection_set_device (self, g_value_get_object (value)); + break; + case PROP_INT_SUBJECT: + priv->subject = g_value_dup_object (value); + break; + case PROP_INT_MASTER: + nm_active_connection_set_master (self, g_value_get_object (value)); + break; + case PROP_SPECIFIC_OBJECT: + tmp = g_value_get_string (value); + /* NM uses "/" to mean NULL */ + if (g_strcmp0 (tmp, "/") != 0) + priv->specific_object = g_strdup (tmp); + break; + case PROP_DEFAULT: + priv->is_default = !!g_value_get_boolean (value); + break; + case PROP_DEFAULT6: + priv->is_default6 = !!g_value_get_boolean (value); + break; + case PROP_VPN: + priv->vpn = g_value_get_boolean (value); + break; + case PROP_MASTER: + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; } +} - if (priv->pending_activation_id) { - nm_device_remove_pending_action (priv->device, priv->pending_activation_id, TRUE); - g_clear_pointer (&priv->pending_activation_id, g_free); +/*****************************************************************************/ + +static void +nm_active_connection_init (NMActiveConnection *self) +{ + NMActiveConnectionPrivate *priv; + + priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_ACTIVE_CONNECTION, NMActiveConnectionPrivate); + self->_priv = priv; + + _LOGT ("creating"); + + priv->version_id = _version_id_new (); +} + +static void +constructed (GObject *object) +{ + NMActiveConnection *self = (NMActiveConnection *) object; + NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self); + + G_OBJECT_CLASS (nm_active_connection_parent_class)->constructed (object); + + if (!priv->applied_connection && priv->settings_connection) { + priv->applied_connection = + nm_simple_connection_new_clone ((NMConnection *) priv->settings_connection); } - g_clear_object (&priv->device); + if (priv->applied_connection) + nm_connection_clear_secrets (priv->applied_connection); + + _LOGD ("constructed (%s, version-id %llu)", G_OBJECT_TYPE_NAME (self), (long long unsigned) priv->version_id); + + g_return_if_fail (priv->subject); } static void @@ -1166,7 +1170,6 @@ nm_active_connection_class_init (NMActiveConnectionClass *ac_class) exported_object_class->export_path = NM_DBUS_PATH "/ActiveConnection/%u"; - /* virtual methods */ object_class->get_property = get_property; object_class->set_property = set_property; object_class->constructed = constructed; diff --git a/src/nm-active-connection.h b/src/nm-active-connection.h index 42e45a2bf1..d87a30b540 100644 --- a/src/nm-active-connection.h +++ b/src/nm-active-connection.h @@ -61,8 +61,11 @@ #define NM_ACTIVE_CONNECTION_DEVICE_METERED_CHANGED "device-metered-changed" #define NM_ACTIVE_CONNECTION_PARENT_ACTIVE "parent-active" +struct _NMActiveConnectionPrivate; + struct _NMActiveConnection { NMExportedObject parent; + struct _NMActiveConnectionPrivate *_priv; }; typedef struct { diff --git a/src/nm-audit-manager.c b/src/nm-audit-manager.c index 9e88409624..384a5c3fb5 100644 --- a/src/nm-audit-manager.c +++ b/src/nm-audit-manager.c @@ -32,44 +32,63 @@ #include "nm-config.h" #include "nm-settings-connection.h" -#define AUDIT_LOG_LEVEL LOGL_INFO - -#define _NMLOG_PREFIX_NAME "audit" -#define _NMLOG(level, domain, ...) \ - G_STMT_START { \ - nm_log ((level), (domain), \ - "%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ - _NMLOG_PREFIX_NAME": " \ - _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ - } G_STMT_END +/*****************************************************************************/ typedef enum { - BACKEND_LOG = (1 << 0), - BACKEND_AUDITD = (1 << 1), - _BACKEND_LAST, - BACKEND_ALL = ((_BACKEND_LAST - 1) << 1) - 1, + BACKEND_LOG = (1 << 0), + BACKEND_AUDITD = (1 << 1), + _BACKEND_LAST, + BACKEND_ALL = ((_BACKEND_LAST - 1) << 1) - 1, } AuditBackend; typedef struct { - const char *name; - GValue value; - gboolean need_encoding; - AuditBackend backends; + const char *name; + GValue value; + gboolean need_encoding; + AuditBackend backends; } AuditField; -#if HAVE_LIBAUDIT +/*****************************************************************************/ + typedef struct { NMConfig *config; int auditd_fd; } NMAuditManagerPrivate; -#define NM_AUDIT_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_AUDIT_MANAGER, NMAuditManagerPrivate)) +struct _NMAuditManager { + GObject parent; +#if HAVE_LIBAUDIT + NMAuditManagerPrivate _priv; #endif +}; + +struct _NMAuditManagerClass { + GObjectClass parent; +}; G_DEFINE_TYPE (NMAuditManager, nm_audit_manager, G_TYPE_OBJECT) +#define NM_AUDIT_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMAuditManager, NM_IS_AUDIT_MANAGER) + +/*****************************************************************************/ + +#define AUDIT_LOG_LEVEL LOGL_INFO + +#define _NMLOG_PREFIX_NAME "audit" +#define _NMLOG(level, domain, ...) \ + G_STMT_START { \ + nm_log ((level), (domain), \ + "%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ + _NMLOG_PREFIX_NAME": " \ + _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ + } G_STMT_END + +/*****************************************************************************/ + NM_DEFINE_SINGLETON_GETTER (NMAuditManager, nm_audit_manager_get, NM_TYPE_AUDIT_MANAGER); +/*****************************************************************************/ + static void _audit_field_init_string (AuditField *field, const char *name, const char *str, gboolean need_encoding, AuditBackend backends) @@ -346,6 +365,8 @@ config_changed_cb (NMConfig *config, } #endif +/*****************************************************************************/ + static void nm_audit_manager_init (NMAuditManager *self) { @@ -389,11 +410,5 @@ nm_audit_manager_class_init (NMAuditManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); -#if HAVE_LIBAUDIT - g_type_class_add_private (klass, sizeof (NMAuditManagerPrivate)); -#endif - - /* virtual methods */ object_class->dispose = dispose; } - diff --git a/src/nm-audit-manager.h b/src/nm-audit-manager.h index af8a2037c7..d157ff122a 100644 --- a/src/nm-audit-manager.h +++ b/src/nm-audit-manager.h @@ -32,13 +32,7 @@ #define NM_IS_AUDIT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_AUDIT_MANAGER)) #define NM_AUDIT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_AUDIT_MANAGER, NMAuditManagerClass)) -struct _NMAuditManager { - GObject parent; -}; - -typedef struct { - GObjectClass parent; -} NMAuditManagerClass; +typedef struct _NMAuditManagerClass NMAuditManagerClass; #define NM_AUDIT_OP_CONN_ADD "connection-add" #define NM_AUDIT_OP_CONN_DELETE "connection-delete" diff --git a/src/nm-auth-manager.c b/src/nm-auth-manager.c index 531e2c354b..73063b9b92 100644 --- a/src/nm-auth-manager.c +++ b/src/nm-auth-manager.c @@ -30,32 +30,14 @@ #define POLKIT_OBJECT_PATH "/org/freedesktop/PolicyKit1/Authority" #define POLKIT_INTERFACE "org.freedesktop.PolicyKit1.Authority" +/*****************************************************************************/ -#define _NMLOG_PREFIX_NAME "auth" -#define _NMLOG_DOMAIN LOGD_CORE -#define _NMLOG(level, ...) \ - G_STMT_START { \ - if (nm_logging_enabled ((level), (_NMLOG_DOMAIN))) { \ - char __prefix[30] = _NMLOG_PREFIX_NAME; \ - \ - if ((self) != singleton_instance) \ - g_snprintf (__prefix, sizeof (__prefix), ""_NMLOG_PREFIX_NAME"[%p]", (self)); \ - _nm_log ((level), (_NMLOG_DOMAIN), 0, \ - "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ - } \ - } G_STMT_END - -enum { - PROP_0, +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_POLKIT_ENABLED, - - LAST_PROP -}; +); enum { CHANGED_SIGNAL, - LAST_SIGNAL, }; @@ -71,11 +53,37 @@ typedef struct { #endif } NMAuthManagerPrivate; -NM_DEFINE_SINGLETON_REGISTER (NMAuthManager); +struct _NMAuthManager { + GObject parent; + NMAuthManagerPrivate _priv; +}; + +struct _NMAuthManagerClass { + GObjectClass parent; +}; G_DEFINE_TYPE (NMAuthManager, nm_auth_manager, G_TYPE_OBJECT) -#define NM_AUTH_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_AUTH_MANAGER, NMAuthManagerPrivate)) +#define NM_AUTH_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMAuthManager, NM_IS_AUTH_MANAGER) + +NM_DEFINE_SINGLETON_REGISTER (NMAuthManager); + +/*****************************************************************************/ + +#define _NMLOG_PREFIX_NAME "auth" +#define _NMLOG_DOMAIN LOGD_CORE +#define _NMLOG(level, ...) \ + G_STMT_START { \ + if (nm_logging_enabled ((level), (_NMLOG_DOMAIN))) { \ + char __prefix[30] = _NMLOG_PREFIX_NAME; \ + \ + if ((self) != singleton_instance) \ + g_snprintf (__prefix, sizeof (__prefix), ""_NMLOG_PREFIX_NAME"[%p]", (self)); \ + _nm_log ((level), (_NMLOG_DOMAIN), 0, \ + "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } \ + } G_STMT_END /*****************************************************************************/ @@ -477,32 +485,12 @@ nm_auth_manager_get () return singleton_instance; } -NMAuthManager * -nm_auth_manager_setup (gboolean polkit_enabled) -{ - NMAuthManager *self; - - g_return_val_if_fail (!singleton_instance, singleton_instance); - - self = g_object_new (NM_TYPE_AUTH_MANAGER, - NM_AUTH_MANAGER_POLKIT_ENABLED, polkit_enabled, - NULL); - _LOGD ("set instance"); - - singleton_instance = self; - nm_singleton_instance_register (); - - nm_log_dbg (LOGD_CORE, "setup %s singleton (%p)", "NMAuthManager", singleton_instance); - - return self; -} - /*****************************************************************************/ static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NMAuthManagerPrivate *priv = NM_AUTH_MANAGER_GET_PRIVATE (object); + NMAuthManagerPrivate *priv = NM_AUTH_MANAGER_GET_PRIVATE ((NMAuthManager *) object); switch (prop_id) { case PROP_POLKIT_ENABLED: @@ -517,7 +505,7 @@ get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) static void set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - NMAuthManagerPrivate *priv = NM_AUTH_MANAGER_GET_PRIVATE (object); + NMAuthManagerPrivate *priv = NM_AUTH_MANAGER_GET_PRIVATE ((NMAuthManager *) object); switch (prop_id) { case PROP_POLKIT_ENABLED: @@ -530,6 +518,8 @@ set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *p } } +/*****************************************************************************/ + static void nm_auth_manager_init (NMAuthManager *self) { @@ -571,6 +561,25 @@ constructed (GObject *object) #endif } +NMAuthManager * +nm_auth_manager_setup (gboolean polkit_enabled) +{ + NMAuthManager *self; + + g_return_val_if_fail (!singleton_instance, singleton_instance); + + self = g_object_new (NM_TYPE_AUTH_MANAGER, + NM_AUTH_MANAGER_POLKIT_ENABLED, polkit_enabled, + NULL); + _LOGD ("set instance"); + + singleton_instance = self; + nm_singleton_instance_register (); + + nm_log_dbg (LOGD_CORE, "setup %s singleton (%p)", "NMAuthManager", singleton_instance); + + return self; +} static void dispose (GObject *object) @@ -605,20 +614,19 @@ nm_auth_manager_class_init (NMAuthManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMAuthManagerPrivate)); - object_class->get_property = get_property; object_class->set_property = set_property; object_class->constructed = constructed; object_class->dispose = dispose; - g_object_class_install_property - (object_class, PROP_POLKIT_ENABLED, + obj_properties[PROP_POLKIT_ENABLED] = g_param_spec_boolean (NM_AUTH_MANAGER_POLKIT_ENABLED, "", "", FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); signals[CHANGED_SIGNAL] = g_signal_new (NM_AUTH_MANAGER_SIGNAL_CHANGED, NM_TYPE_AUTH_MANAGER, @@ -629,6 +637,5 @@ nm_auth_manager_class_init (NMAuthManagerClass *klass) g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); - } diff --git a/src/nm-auth-manager.h b/src/nm-auth-manager.h index 9251b3347c..e66ef78c1b 100644 --- a/src/nm-auth-manager.h +++ b/src/nm-auth-manager.h @@ -30,18 +30,12 @@ #define NM_IS_AUTH_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_AUTH_MANAGER)) #define NM_AUTH_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_AUTH_MANAGER, NMAuthManagerClass)) - #define NM_AUTH_MANAGER_POLKIT_ENABLED "polkit-enabled" #define NM_AUTH_MANAGER_SIGNAL_CHANGED "changed" -typedef struct { - GObject parent; -} NMAuthManager; - -typedef struct { - GObjectClass parent; -} NMAuthManagerClass; +typedef struct _NMAuthManager NMAuthManager; +typedef struct _NMAuthManagerClass NMAuthManagerClass; GType nm_auth_manager_get_type (void); @@ -68,4 +62,3 @@ gboolean nm_auth_manager_polkit_authority_check_authorization_finish (NMAuthMana #endif #endif /* NM_AUTH_MANAGER_H */ - diff --git a/src/nm-auth-subject.c b/src/nm-auth-subject.c index 54d359598e..2a5f007066 100644 --- a/src/nm-auth-subject.c +++ b/src/nm-auth-subject.c @@ -70,7 +70,7 @@ G_DEFINE_TYPE (NMAuthSubject, nm_auth_subject, G_TYPE_OBJECT) #define NM_AUTH_SUBJECT_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMAuthSubject, NM_IS_AUTH_SUBJECT) -/**************************************************************/ +/*****************************************************************************/ #define CHECK_SUBJECT(self, error_value) \ NMAuthSubjectPrivate *priv; \ @@ -172,7 +172,7 @@ nm_auth_subject_get_unix_process_dbus_sender (NMAuthSubject *subject) return priv->unix_process.dbus_sender; } -/**************************************************************/ +/*****************************************************************************/ static NMAuthSubject * _new_unix_process (GDBusMethodInvocation *context, @@ -256,7 +256,7 @@ nm_auth_subject_new_internal (void) NULL)); } -/**************************************************************/ +/*****************************************************************************/ static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) diff --git a/src/nm-bus-manager.c b/src/nm-bus-manager.c index 270792ef9d..94f4a6fa59 100644 --- a/src/nm-bus-manager.c +++ b/src/nm-bus-manager.c @@ -21,6 +21,8 @@ #include "nm-default.h" +#include "nm-bus-manager.h" + #include <unistd.h> #include <sys/stat.h> #include <sys/types.h> @@ -28,39 +30,29 @@ #include <string.h> #include "nm-dbus-interface.h" -#include "nm-bus-manager.h" #include "nm-core-internal.h" #include "nm-dbus-compat.h" #include "nm-exported-object.h" #include "NetworkManagerUtils.h" -#define _NMLOG_DOMAIN LOGD_CORE -#define _NMLOG_PREFIX_NAME "bus-manager" -#define _NMLOG(level, ...) \ - G_STMT_START { \ - nm_log ((level), _NMLOG_DOMAIN, \ - "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - _NMLOG_PREFIX_NAME": " \ - _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ - } G_STMT_END +/* The base path for our GDBusObjectManagerServers. They do not contain + * "NetworkManager" because GDBusObjectManagerServer requires that all + * exported objects be *below* the base path, and eg the Manager object + * is the base path already. + */ +#define OBJECT_MANAGER_SERVER_BASE_PATH "/org/freedesktop" + +/*****************************************************************************/ enum { DBUS_CONNECTION_CHANGED = 0, PRIVATE_CONNECTION_NEW, PRIVATE_CONNECTION_DISCONNECTED, - NUMBER_OF_SIGNALS + NUMBER_OF_SIGNALS, }; static guint signals[NUMBER_OF_SIGNALS]; -G_DEFINE_TYPE(NMBusManager, nm_bus_manager, G_TYPE_OBJECT) - -#define NM_BUS_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ - NM_TYPE_BUS_MANAGER, \ - NMBusManagerPrivate)) - -typedef struct _PrivateServer PrivateServer; - typedef struct { GDBusConnection *connection; GDBusObjectManagerServer *obj_manager; @@ -74,16 +66,38 @@ typedef struct { guint reconnect_id; } NMBusManagerPrivate; +struct _NMBusManager { + GObject parent; + NMBusManagerPrivate _priv; +}; + +struct _NMBusManagerClass { + GObjectClass parent; +}; + +G_DEFINE_TYPE(NMBusManager, nm_bus_manager, G_TYPE_OBJECT) + +#define NM_BUS_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMBusManager, NM_IS_BUS_MANAGER) + +/*****************************************************************************/ + +#define _NMLOG_DOMAIN LOGD_CORE +#define _NMLOG_PREFIX_NAME "bus-manager" +#define _NMLOG(level, ...) \ + G_STMT_START { \ + nm_log ((level), _NMLOG_DOMAIN, \ + "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + _NMLOG_PREFIX_NAME": " \ + _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } G_STMT_END + +/*****************************************************************************/ + static gboolean nm_bus_manager_init_bus (NMBusManager *self); static void nm_bus_manager_cleanup (NMBusManager *self); static void start_reconnection_timeout (NMBusManager *self); -/* The base path for our GDBusObjectManagerServers. They do not contain - * "NetworkManager" because GDBusObjectManagerServer requires that all - * exported objects be *below* the base path, and eg the Manager object - * is the base path already. - */ -#define OBJECT_MANAGER_SERVER_BASE_PATH "/org/freedesktop" +/*****************************************************************************/ NM_DEFINE_SINGLETON_REGISTER (NMBusManager); @@ -113,9 +127,9 @@ nm_bus_manager_setup (NMBusManager *instance) _LOGD ("setup %s singleton (%p)", "NMBusManager", singleton_instance); } -/**************************************************************/ +/*****************************************************************************/ -struct _PrivateServer { +typedef struct { const char *tag; GQuark detail; char *address; @@ -133,7 +147,7 @@ struct _PrivateServer { GHashTable *obj_managers; NMBusManager *manager; -}; +} PrivateServer; typedef struct { GDBusConnection *connection; @@ -382,7 +396,7 @@ private_server_get_connection_by_owner (PrivateServer *s, const char *owner) return NULL; } -/**************************************************************/ +/*****************************************************************************/ static gboolean _bus_get_unix_pid (NMBusManager *self, @@ -616,82 +630,7 @@ nm_bus_manager_get_unix_user (NMBusManager *self, return TRUE; } -/**************************************************************/ - -static void -nm_bus_manager_init (NMBusManager *self) -{ - NMBusManagerPrivate *priv = NM_BUS_MANAGER_GET_PRIVATE (self); - - priv->obj_manager = g_dbus_object_manager_server_new (OBJECT_MANAGER_SERVER_BASE_PATH); -} - -static void -nm_bus_manager_dispose (GObject *object) -{ - NMBusManager *self = NM_BUS_MANAGER (object); - NMBusManagerPrivate *priv = NM_BUS_MANAGER_GET_PRIVATE (self); - GList *exported, *iter; - - g_slist_free_full (priv->private_servers, private_server_free); - priv->private_servers = NULL; - - nm_bus_manager_cleanup (self); - - if (priv->obj_manager) { - /* The ObjectManager owns the last reference to many exported - * objects, and when that reference is dropped the objects unregister - * themselves via nm_bus_manager_unregister_object(). By that time - * priv->obj_manager is already NULL and that prints warnings. Unregister - * them before clearing the ObjectManager instead. - */ - exported = g_dbus_object_manager_get_objects ((GDBusObjectManager *) priv->obj_manager); - for (iter = exported; iter; iter = iter->next) { - nm_bus_manager_unregister_object (self, iter->data); - g_object_unref (iter->data); - } - g_list_free (exported); - g_clear_object (&priv->obj_manager); - } - - nm_clear_g_source (&priv->reconnect_id); - - G_OBJECT_CLASS (nm_bus_manager_parent_class)->dispose (object); -} - -static void -nm_bus_manager_class_init (NMBusManagerClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - g_type_class_add_private (klass, sizeof (NMBusManagerPrivate)); - - object_class->dispose = nm_bus_manager_dispose; - - signals[DBUS_CONNECTION_CHANGED] = - g_signal_new (NM_BUS_MANAGER_DBUS_CONNECTION_CHANGED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMBusManagerClass, dbus_connection_changed), - NULL, NULL, NULL, - G_TYPE_NONE, 1, G_TYPE_POINTER); - - signals[PRIVATE_CONNECTION_NEW] = - g_signal_new (NM_BUS_MANAGER_PRIVATE_CONNECTION_NEW, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, - 0, NULL, NULL, NULL, - G_TYPE_NONE, 2, G_TYPE_DBUS_CONNECTION, G_TYPE_DBUS_OBJECT_MANAGER_SERVER); - - signals[PRIVATE_CONNECTION_DISCONNECTED] = - g_signal_new (NM_BUS_MANAGER_PRIVATE_CONNECTION_DISCONNECTED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, - G_STRUCT_OFFSET (NMBusManagerClass, private_connection_disconnected), - NULL, NULL, NULL, - G_TYPE_NONE, 1, G_TYPE_POINTER); -} - +/*****************************************************************************/ /* Only cleanup a specific dbus connection, not all our private data */ static void @@ -1005,3 +944,78 @@ nm_bus_manager_new_proxy (NMBusManager *self, } return proxy; } + +/*****************************************************************************/ + +static void +nm_bus_manager_init (NMBusManager *self) +{ + NMBusManagerPrivate *priv = NM_BUS_MANAGER_GET_PRIVATE (self); + + priv->obj_manager = g_dbus_object_manager_server_new (OBJECT_MANAGER_SERVER_BASE_PATH); +} + +static void +dispose (GObject *object) +{ + NMBusManager *self = NM_BUS_MANAGER (object); + NMBusManagerPrivate *priv = NM_BUS_MANAGER_GET_PRIVATE (self); + GList *exported, *iter; + + g_slist_free_full (priv->private_servers, private_server_free); + priv->private_servers = NULL; + + nm_bus_manager_cleanup (self); + + if (priv->obj_manager) { + /* The ObjectManager owns the last reference to many exported + * objects, and when that reference is dropped the objects unregister + * themselves via nm_bus_manager_unregister_object(). By that time + * priv->obj_manager is already NULL and that prints warnings. Unregister + * them before clearing the ObjectManager instead. + */ + exported = g_dbus_object_manager_get_objects ((GDBusObjectManager *) priv->obj_manager); + for (iter = exported; iter; iter = iter->next) { + nm_bus_manager_unregister_object (self, iter->data); + g_object_unref (iter->data); + } + g_list_free (exported); + g_clear_object (&priv->obj_manager); + } + + nm_clear_g_source (&priv->reconnect_id); + + G_OBJECT_CLASS (nm_bus_manager_parent_class)->dispose (object); +} + +static void +nm_bus_manager_class_init (NMBusManagerClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->dispose = dispose; + + signals[DBUS_CONNECTION_CHANGED] = + g_signal_new (NM_BUS_MANAGER_DBUS_CONNECTION_CHANGED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_POINTER); + + signals[PRIVATE_CONNECTION_NEW] = + g_signal_new (NM_BUS_MANAGER_PRIVATE_CONNECTION_NEW, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 2, G_TYPE_DBUS_CONNECTION, G_TYPE_DBUS_OBJECT_MANAGER_SERVER); + + signals[PRIVATE_CONNECTION_DISCONNECTED] = + g_signal_new (NM_BUS_MANAGER_PRIVATE_CONNECTION_DISCONNECTED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_POINTER); +} + + + diff --git a/src/nm-bus-manager.h b/src/nm-bus-manager.h index bc23d2ce38..153f7cdce2 100644 --- a/src/nm-bus-manager.h +++ b/src/nm-bus-manager.h @@ -33,23 +33,7 @@ #define NM_BUS_MANAGER_PRIVATE_CONNECTION_NEW "private-connection-new" #define NM_BUS_MANAGER_PRIVATE_CONNECTION_DISCONNECTED "private-connection-disconnected" -struct _NMBusManager { - GObject parent; -}; - -typedef struct { - GObjectClass parent; - - /* Signals */ - void (*dbus_connection_changed) (NMBusManager *mgr, - GDBusConnection *connection); - - void (*private_connection_new) (NMBusManager *mgr, - GDBusConnection *connection); - - void (*private_connection_disconnected) (NMBusManager *mgr, - GDBusConnection *connection); -} NMBusManagerClass; +typedef struct _NMBusManagerClass NMBusManagerClass; GType nm_bus_manager_get_type (void); diff --git a/src/nm-checkpoint-manager.c b/src/nm-checkpoint-manager.c index 49e8b89595..41b5670bd7 100644 --- a/src/nm-checkpoint-manager.c +++ b/src/nm-checkpoint-manager.c @@ -302,4 +302,3 @@ nm_checkpoint_manager_unref (NMCheckpointManager *self) g_slice_free (NMCheckpointManager, self); } - diff --git a/src/nm-checkpoint-manager.h b/src/nm-checkpoint-manager.h index 022b1a80e7..30e490417e 100644 --- a/src/nm-checkpoint-manager.h +++ b/src/nm-checkpoint-manager.h @@ -22,6 +22,7 @@ #define __NM_CHECKPOINT_MANAGER_H__ #include "nm-dbus-interface.h" + #include "nm-checkpoint.h" typedef struct _NMCheckpointManager NMCheckpointManager; @@ -47,4 +48,3 @@ gboolean nm_checkpoint_manager_rollback (NMCheckpointManager *self, GError **error); #endif /* __NM_CHECKPOINT_MANAGER_H__ */ - diff --git a/src/nm-checkpoint.c b/src/nm-checkpoint.c index 8869204d72..1ee8026842 100644 --- a/src/nm-checkpoint.c +++ b/src/nm-checkpoint.c @@ -19,6 +19,7 @@ */ #include "nm-default.h" + #include "nm-checkpoint.h" #include <string.h> @@ -34,23 +35,7 @@ #include "nm-utils.h" #include "nmdbus-checkpoint.h" -#define _NMLOG_PREFIX_NAME "checkpoint" -#define _NMLOG_DOMAIN LOGD_CORE - -#define _NMLOG(level, ...) \ - G_STMT_START { \ - if (nm_logging_enabled (level, _NMLOG_DOMAIN)) { \ - char __prefix[32]; \ - \ - if (self) \ - g_snprintf (__prefix, sizeof (__prefix), "%s[%p]", ""_NMLOG_PREFIX_NAME"", (self)); \ - else \ - g_strlcpy (__prefix, _NMLOG_PREFIX_NAME, sizeof (__prefix)); \ - _nm_log ((level), (_NMLOG_DOMAIN), 0, \ - "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ - } \ - } G_STMT_END +/*****************************************************************************/ typedef struct { char *original_dev_path; @@ -62,6 +47,12 @@ typedef struct { bool unmanaged_explicit:1; } DeviceCheckpoint; +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_DEVICES, + PROP_CREATED, + PROP_ROLLBACK_TIMEOUT, +); + typedef struct { /* properties */ GHashTable *devices; @@ -77,19 +68,35 @@ struct _NMCheckpoint { NMCheckpointPrivate _priv; }; -typedef struct { +struct _NMCheckpointClass { NMExportedObjectClass parent; -} NMCheckpointClass; +}; G_DEFINE_TYPE (NMCheckpoint, nm_checkpoint, NM_TYPE_EXPORTED_OBJECT) -#define NM_CHECKPOINT_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMCheckpoint, NM_IS_CHECKPOINT) +#define NM_CHECKPOINT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMCheckpoint, NM_IS_CHECKPOINT) -NM_GOBJECT_PROPERTIES_DEFINE_BASE ( - PROP_DEVICES, - PROP_CREATED, - PROP_ROLLBACK_TIMEOUT, -); +/*****************************************************************************/ + +#define _NMLOG_PREFIX_NAME "checkpoint" +#define _NMLOG_DOMAIN LOGD_CORE + +#define _NMLOG(level, ...) \ + G_STMT_START { \ + if (nm_logging_enabled (level, _NMLOG_DOMAIN)) { \ + char __prefix[32]; \ + \ + if (self) \ + g_snprintf (__prefix, sizeof (__prefix), "%s[%p]", ""_NMLOG_PREFIX_NAME"", (self)); \ + else \ + g_strlcpy (__prefix, _NMLOG_PREFIX_NAME, sizeof (__prefix)); \ + _nm_log ((level), (_NMLOG_DOMAIN), 0, \ + "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } \ + } G_STMT_END + +/*****************************************************************************/ guint64 nm_checkpoint_get_rollback_ts (NMCheckpoint *self) @@ -289,6 +296,39 @@ device_checkpoint_destroy (gpointer data) g_slice_free (DeviceCheckpoint, dev_checkpoint); } +/*****************************************************************************/ + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NMCheckpoint *self = NM_CHECKPOINT (object); + NMCheckpointPrivate *priv = NM_CHECKPOINT_GET_PRIVATE (self); + gs_free_slist GSList *devices = NULL; + GHashTableIter iter; + NMDevice *device; + + switch (prop_id) { + case PROP_DEVICES: + g_hash_table_iter_init (&iter, priv->devices); + while (g_hash_table_iter_next (&iter, (gpointer *) &device, NULL)) + devices = g_slist_append (devices, device); + nm_utils_g_value_set_object_path_array (value, devices, NULL, NULL); + break; + case PROP_CREATED: + g_value_set_int64 (value, priv->created); + break; + case PROP_ROLLBACK_TIMEOUT: + g_value_set_uint (value, priv->rollback_timeout); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/*****************************************************************************/ + static void nm_checkpoint_init (NMCheckpoint *self) { @@ -356,50 +396,17 @@ dispose (GObject *object) } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - NMCheckpoint *self = NM_CHECKPOINT (object); - NMCheckpointPrivate *priv = NM_CHECKPOINT_GET_PRIVATE (self); - gs_free_slist GSList *devices = NULL; - GHashTableIter iter; - NMDevice *device; - - switch (prop_id) { - case PROP_DEVICES: - g_hash_table_iter_init (&iter, priv->devices); - while (g_hash_table_iter_next (&iter, (gpointer *) &device, NULL)) - devices = g_slist_append (devices, device); - nm_utils_g_value_set_object_path_array (value, devices, NULL, NULL); - break; - case PROP_CREATED: - g_value_set_int64 (value, priv->created); - break; - case PROP_ROLLBACK_TIMEOUT: - g_value_set_uint (value, priv->rollback_timeout); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class) { GObjectClass *object_class = G_OBJECT_CLASS (checkpoint_class); NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (checkpoint_class); - g_type_class_add_private (checkpoint_class, sizeof (NMCheckpointPrivate)); - exported_object_class->export_path = NM_DBUS_PATH "/Checkpoint/%u"; exported_object_class->export_on_construction = FALSE; - /* virtual methods */ object_class->dispose = dispose; object_class->get_property = get_property; - /* properties */ obj_properties[PROP_DEVICES] = g_param_spec_boxed (NM_CHECKPOINT_DEVICES, "", "", G_TYPE_STRV, diff --git a/src/nm-checkpoint.h b/src/nm-checkpoint.h index c7d2d42f35..815ae7be10 100644 --- a/src/nm-checkpoint.h +++ b/src/nm-checkpoint.h @@ -31,12 +31,13 @@ #define NM_IS_CHECKPOINT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_CHECKPOINT)) #define NM_CHECKPOINT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_CHECKPOINT, NMCheckpointClass)) -typedef struct _NMCheckpoint NMCheckpoint; - #define NM_CHECKPOINT_DEVICES "devices" #define NM_CHECKPOINT_CREATED "created" #define NM_CHECKPOINT_ROLLBACK_TIMEOUT "rollback-timeout" +typedef struct _NMCheckpoint NMCheckpoint; +typedef struct _NMCheckpointClass NMCheckpointClass; + GType nm_checkpoint_get_type (void); NMCheckpoint *nm_checkpoint_new (NMManager *manager, GPtrArray *devices, guint32 rollback_timeout, diff --git a/src/nm-config-data.c b/src/nm-config-data.c index 23c4cecdc9..6f83e66566 100644 --- a/src/nm-config-data.c +++ b/src/nm-config-data.c @@ -30,6 +30,8 @@ #include "nm-core-internal.h" #include "nm-keyfile-internal.h" +/*****************************************************************************/ + typedef struct { char *group_name; gboolean stop_match; @@ -42,6 +44,33 @@ typedef struct { } match_device; } MatchSectionInfo; +struct _NMGlobalDnsDomain { + char *name; + char **servers; + char **options; +}; + +struct _NMGlobalDnsConfig { + char **searches; + char **options; + GHashTable *domains; + char **domain_list; + gboolean internal; +}; + +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_CONFIG_MAIN_FILE, + PROP_CONFIG_DESCRIPTION, + PROP_KEYFILE_USER, + PROP_KEYFILE_INTERN, + PROP_CONNECTIVITY_URI, + PROP_CONNECTIVITY_INTERVAL, + PROP_CONNECTIVITY_RESPONSE, + PROP_NO_AUTO_DEFAULT, +); + typedef struct { char *config_main_file; char *config_description; @@ -82,40 +111,20 @@ typedef struct { char *value_cached; } NMConfigDataPrivate; -struct _NMGlobalDnsDomain { - char *name; - char **servers; - char **options; -}; - -struct _NMGlobalDnsConfig { - char **searches; - char **options; - GHashTable *domains; - char **domain_list; - gboolean internal; +struct _NMConfigData { + GObject parent; + NMConfigDataPrivate _priv; }; -enum { - PROP_0, - PROP_CONFIG_MAIN_FILE, - PROP_CONFIG_DESCRIPTION, - PROP_KEYFILE_USER, - PROP_KEYFILE_INTERN, - PROP_CONNECTIVITY_URI, - PROP_CONNECTIVITY_INTERVAL, - PROP_CONNECTIVITY_RESPONSE, - PROP_NO_AUTO_DEFAULT, - - LAST_PROP +struct _NMConfigDataClass { + GObjectClass parent; }; - G_DEFINE_TYPE (NMConfigData, nm_config_data, G_TYPE_OBJECT) -#define NM_CONFIG_DATA_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_CONFIG_DATA, NMConfigDataPrivate)) +#define NM_CONFIG_DATA_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMConfigData, NM_IS_CONFIG_DATA) -/************************************************************************/ +/*****************************************************************************/ #define _HAS_PREFIX(str, prefix) \ ({ \ @@ -123,7 +132,7 @@ G_DEFINE_TYPE (NMConfigData, nm_config_data, G_TYPE_OBJECT) g_str_has_prefix ( _str, ""prefix"") && _str[NM_STRLEN(prefix)] != '\0'; \ }) -/************************************************************************/ +/*****************************************************************************/ const char * nm_config_data_get_config_main_file (const NMConfigData *self) @@ -162,7 +171,7 @@ nm_config_data_get_value (const NMConfigData *self, const char *group, const cha const char *nm_config_data_get_value_cached (const NMConfigData *self, const char *group, const char *key, NMConfigGetValueFlags flags) { - NMConfigDataPrivate *priv; + const NMConfigDataPrivate *priv; g_return_val_if_fail (NM_IS_CONFIG_DATA (self), NULL); g_return_val_if_fail (group && *group, NULL); @@ -171,8 +180,8 @@ const char *nm_config_data_get_value_cached (const NMConfigData *self, const cha priv = NM_CONFIG_DATA_GET_PRIVATE (self); /* we modify @value_cached. In C++ jargon, the field is mutable. */ - g_free (priv->value_cached); - priv->value_cached = nm_config_keyfile_get_value (priv->keyfile, group, key, flags); + g_free (((NMConfigDataPrivate *) priv)->value_cached); + ((NMConfigDataPrivate *) priv)->value_cached = nm_config_keyfile_get_value (priv->keyfile, group, key, flags); return priv->value_cached; } @@ -243,7 +252,7 @@ nm_config_data_get_no_auto_default (const NMConfigData *self) gboolean nm_config_data_get_no_auto_default_for_device (const NMConfigData *self, NMDevice *device) { - NMConfigDataPrivate *priv; + const NMConfigDataPrivate *priv; g_return_val_if_fail (NM_IS_CONFIG_DATA (self), FALSE); g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); @@ -297,7 +306,7 @@ nm_config_data_get_assume_ipv6ll_only (const NMConfigData *self, NMDevice *devic GKeyFile * nm_config_data_clone_keyfile_intern (const NMConfigData *self) { - NMConfigDataPrivate *priv; + const NMConfigDataPrivate *priv; GKeyFile *keyfile; g_return_val_if_fail (NM_IS_CONFIG_DATA (self), FALSE); @@ -328,7 +337,7 @@ _nm_config_data_get_keyfile_user (const NMConfigData *self) return NM_CONFIG_DATA_GET_PRIVATE (self)->keyfile_user; } -/************************************************************************/ +/*****************************************************************************/ /** * nm_config_data_get_groups: @@ -373,7 +382,7 @@ nm_config_data_get_keys (const NMConfigData *self, const char *group) gboolean nm_config_data_is_intern_atomic_group (const NMConfigData *self, const char *group) { - NMConfigDataPrivate *priv; + const NMConfigDataPrivate *priv; g_return_val_if_fail (NM_IS_CONFIG_DATA (self), FALSE); g_return_val_if_fail (group && *group, FALSE); @@ -391,7 +400,7 @@ nm_config_data_is_intern_atomic_group (const NMConfigData *self, const char *gro return g_key_file_has_group (priv->keyfile, group); } -/************************************************************************/ +/*****************************************************************************/ static GKeyFile * _merge_keyfiles (GKeyFile *keyfile_user, GKeyFile *keyfile_intern) @@ -456,7 +465,7 @@ _merge_keyfiles (GKeyFile *keyfile_user, GKeyFile *keyfile_intern) return keyfile; } -/************************************************************************/ +/*****************************************************************************/ static int _nm_config_data_log_sort (const char **pa, const char **pb, gpointer dummy) @@ -532,7 +541,7 @@ nm_config_data_log (const NMConfigData *self, const char *key_prefix, /* FILE* */ gpointer print_stream) { - NMConfigDataPrivate *priv; + const NMConfigDataPrivate *priv; gs_strfreev char **groups = NULL; gsize ngroups; guint g, k; @@ -595,7 +604,7 @@ nm_config_data_log (const NMConfigData *self, #undef _LOG } -/************************************************************************/ +/*****************************************************************************/ const char *const * nm_global_dns_config_get_searches (const NMGlobalDnsConfig *dns) @@ -1081,7 +1090,7 @@ global_dns_equal (NMGlobalDnsConfig *old, NMGlobalDnsConfig *new) return TRUE; } -/************************************************************************/ +/*****************************************************************************/ static const MatchSectionInfo * _match_section_infos_lookup (const MatchSectionInfo *match_section_infos, @@ -1127,7 +1136,7 @@ nm_config_data_get_device_config (const NMConfigData *self, NMDevice *device, gboolean *has_match) { - NMConfigDataPrivate *priv; + const NMConfigDataPrivate *priv; const MatchSectionInfo *connection_info; char *value = NULL; @@ -1166,7 +1175,7 @@ nm_config_data_get_connection_default (const NMConfigData *self, const char *property, NMDevice *device) { - NMConfigDataPrivate *priv; + const NMConfigDataPrivate *priv; char *value = NULL; g_return_val_if_fail (self, NULL); @@ -1261,7 +1270,7 @@ _match_section_infos_construct (GKeyFile *keyfile, const char *prefix) return match_section_infos; } -/************************************************************************/ +/*****************************************************************************/ static gboolean _slist_str_equals (GSList *a, GSList *b) @@ -1318,7 +1327,7 @@ nm_config_data_diff (NMConfigData *old_data, NMConfigData *new_data) return changes; } -/************************************************************************/ +/*****************************************************************************/ static void get_property (GObject *object, @@ -1409,47 +1418,7 @@ set_property (GObject *object, } } -static void -dispose (GObject *object) -{ -} - -static void -finalize (GObject *gobject) -{ - NMConfigDataPrivate *priv = NM_CONFIG_DATA_GET_PRIVATE (gobject); - - g_free (priv->config_main_file); - g_free (priv->config_description); - - g_free (priv->connectivity.uri); - g_free (priv->connectivity.response); - - g_slist_free_full (priv->no_auto_default.specs, g_free); - g_slist_free_full (priv->no_auto_default.specs_config, g_free); - g_strfreev (priv->no_auto_default.arr); - - g_free (priv->dns_mode); - g_free (priv->rc_manager); - - g_slist_free_full (priv->ignore_carrier, g_free); - g_slist_free_full (priv->assume_ipv6ll_only, g_free); - - nm_global_dns_config_free (priv->global_dns); - - _match_section_infos_free (priv->connection_infos); - _match_section_infos_free (priv->device_infos); - - g_key_file_unref (priv->keyfile); - if (priv->keyfile_user) - g_key_file_unref (priv->keyfile_user); - if (priv->keyfile_intern) - g_key_file_unref (priv->keyfile_intern); - - G_OBJECT_CLASS (nm_config_data_parent_class)->finalize (gobject); - - g_free (priv->value_cached); -} +/*****************************************************************************/ static void nm_config_data_init (NMConfigData *self) @@ -1513,7 +1482,7 @@ nm_config_data_new (const char *config_main_file, NMConfigData * nm_config_data_new_update_keyfile_intern (const NMConfigData *base, GKeyFile *keyfile_intern) { - NMConfigDataPrivate *priv = NM_CONFIG_DATA_GET_PRIVATE (base); + const NMConfigDataPrivate *priv = NM_CONFIG_DATA_GET_PRIVATE (base); return g_object_new (NM_TYPE_CONFIG_DATA, NM_CONFIG_DATA_CONFIG_MAIN_FILE, priv->config_main_file, @@ -1528,7 +1497,7 @@ NMConfigData * nm_config_data_new_update_no_auto_default (const NMConfigData *base, const char *const*no_auto_default) { - NMConfigDataPrivate *priv = NM_CONFIG_DATA_GET_PRIVATE (base); + const NMConfigDataPrivate *priv = NM_CONFIG_DATA_GET_PRIVATE (base); return g_object_new (NM_TYPE_CONFIG_DATA, NM_CONFIG_DATA_CONFIG_MAIN_FILE, priv->config_main_file, @@ -1540,78 +1509,104 @@ nm_config_data_new_update_no_auto_default (const NMConfigData *base, } static void +finalize (GObject *gobject) +{ + NMConfigDataPrivate *priv = NM_CONFIG_DATA_GET_PRIVATE ((NMConfigData *) gobject); + + g_free (priv->config_main_file); + g_free (priv->config_description); + + g_free (priv->connectivity.uri); + g_free (priv->connectivity.response); + + g_slist_free_full (priv->no_auto_default.specs, g_free); + g_slist_free_full (priv->no_auto_default.specs_config, g_free); + g_strfreev (priv->no_auto_default.arr); + + g_free (priv->dns_mode); + g_free (priv->rc_manager); + + g_slist_free_full (priv->ignore_carrier, g_free); + g_slist_free_full (priv->assume_ipv6ll_only, g_free); + + nm_global_dns_config_free (priv->global_dns); + + _match_section_infos_free (priv->connection_infos); + _match_section_infos_free (priv->device_infos); + + g_key_file_unref (priv->keyfile); + if (priv->keyfile_user) + g_key_file_unref (priv->keyfile_user); + if (priv->keyfile_intern) + g_key_file_unref (priv->keyfile_intern); + + G_OBJECT_CLASS (nm_config_data_parent_class)->finalize (gobject); + + g_free (priv->value_cached); +} + +static void nm_config_data_class_init (NMConfigDataClass *config_class) { GObjectClass *object_class = G_OBJECT_CLASS (config_class); - g_type_class_add_private (config_class, sizeof (NMConfigDataPrivate)); - object_class->constructed = constructed; - object_class->dispose = dispose; object_class->finalize = finalize; object_class->get_property = get_property; object_class->set_property = set_property; - g_object_class_install_property - (object_class, PROP_CONFIG_MAIN_FILE, + obj_properties[PROP_CONFIG_MAIN_FILE] = g_param_spec_string (NM_CONFIG_DATA_CONFIG_MAIN_FILE, "", "", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); - g_object_class_install_property - (object_class, PROP_CONFIG_DESCRIPTION, + obj_properties[PROP_CONFIG_DESCRIPTION] = g_param_spec_string (NM_CONFIG_DATA_CONFIG_DESCRIPTION, "", "", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_KEYFILE_USER, - g_param_spec_boxed (NM_CONFIG_DATA_KEYFILE_USER, "", "", - G_TYPE_KEY_FILE, - G_PARAM_WRITABLE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_KEYFILE_INTERN, - g_param_spec_boxed (NM_CONFIG_DATA_KEYFILE_INTERN, "", "", - G_TYPE_KEY_FILE, - G_PARAM_WRITABLE | - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - g_object_class_install_property - (object_class, PROP_CONNECTIVITY_URI, + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_KEYFILE_USER] = + g_param_spec_boxed (NM_CONFIG_DATA_KEYFILE_USER, "", "", + G_TYPE_KEY_FILE, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_KEYFILE_INTERN] = + g_param_spec_boxed (NM_CONFIG_DATA_KEYFILE_INTERN, "", "", + G_TYPE_KEY_FILE, + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_CONNECTIVITY_URI] = g_param_spec_string (NM_CONFIG_DATA_CONNECTIVITY_URI, "", "", NULL, G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); - g_object_class_install_property - (object_class, PROP_CONNECTIVITY_INTERVAL, + obj_properties[PROP_CONNECTIVITY_INTERVAL] = g_param_spec_uint (NM_CONFIG_DATA_CONNECTIVITY_INTERVAL, "", "", 0, G_MAXUINT, 0, G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); - g_object_class_install_property - (object_class, PROP_CONNECTIVITY_RESPONSE, + obj_properties[PROP_CONNECTIVITY_RESPONSE] = g_param_spec_string (NM_CONFIG_DATA_CONNECTIVITY_RESPONSE, "", "", NULL, G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); - g_object_class_install_property - (object_class, PROP_NO_AUTO_DEFAULT, + obj_properties[PROP_NO_AUTO_DEFAULT] = g_param_spec_boxed (NM_CONFIG_DATA_NO_AUTO_DEFAULT, "", "", G_TYPE_STRV, G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); } - diff --git a/src/nm-config-data.h b/src/nm-config-data.h index e63b45904e..712b32555d 100644 --- a/src/nm-config-data.h +++ b/src/nm-config-data.h @@ -28,7 +28,6 @@ #define NM_IS_CONFIG_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_CONFIG_DATA)) #define NM_CONFIG_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_CONFIG_DATA, NMConfigDataClass)) - #define NM_CONFIG_DATA_CONFIG_MAIN_FILE "config-main-file" #define NM_CONFIG_DATA_CONFIG_DESCRIPTION "config-description" #define NM_CONFIG_DATA_KEYFILE_USER "keyfile-user" @@ -128,13 +127,7 @@ typedef enum { /*< flags >*/ } NMConfigChangeFlags; -struct _NMConfigData { - GObject parent; -}; - -typedef struct { - GObjectClass parent; -} NMConfigDataClass; +typedef struct _NMConfigDataClass NMConfigDataClass; typedef struct _NMGlobalDnsConfig NMGlobalDnsConfig; typedef struct _NMGlobalDnsDomain NMGlobalDnsDomain; diff --git a/src/nm-config.c b/src/nm-config.c index 8536a77fd5..0ef7fc2090 100644 --- a/src/nm-config.c +++ b/src/nm-config.c @@ -43,17 +43,6 @@ /*****************************************************************************/ -#define _NMLOG_PREFIX_NAME "config" -#define _NMLOG_DOMAIN LOGD_CORE - -#define _NMLOG(level, ...) \ - nm_log (level, _NMLOG_DOMAIN, \ - "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - _NMLOG_PREFIX_NAME \ - _NM_UTILS_MACRO_REST(__VA_ARGS__)) - -/*****************************************************************************/ - struct NMConfigCmdLineOptions { char *config_main_file; char *intern_config_file; @@ -77,6 +66,20 @@ typedef struct { NMConfigState p; } State; +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_CMD_LINE_OPTIONS, + PROP_ATOMIC_SECTION_PREFIXES, +); + +enum { + SIGNAL_CONFIG_CHANGED, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + typedef struct { NMConfigCmdLineOptions cli; @@ -116,35 +119,39 @@ typedef struct { State *state; } NMConfigPrivate; -enum { - PROP_0, - PROP_CMD_LINE_OPTIONS, - PROP_ATOMIC_SECTION_PREFIXES, - LAST_PROP, +struct _NMConfig { + GObject parent; + NMConfigPrivate _priv; }; -enum { - SIGNAL_CONFIG_CHANGED, - - LAST_SIGNAL +struct _NMConfigClass { + GObjectClass parent; }; -static guint signals[LAST_SIGNAL] = { 0 }; - static void nm_config_initable_iface_init (GInitableIface *iface); G_DEFINE_TYPE_WITH_CODE (NMConfig, nm_config, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, nm_config_initable_iface_init); ) +#define NM_CONFIG_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMConfig, NM_IS_CONFIG) + +/*****************************************************************************/ + +#define _NMLOG_PREFIX_NAME "config" +#define _NMLOG_DOMAIN LOGD_CORE -#define NM_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_CONFIG, NMConfigPrivate)) +#define _NMLOG(level, ...) \ + nm_log (level, _NMLOG_DOMAIN, \ + "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + _NMLOG_PREFIX_NAME \ + _NM_UTILS_MACRO_REST(__VA_ARGS__)) -/************************************************************************/ +/*****************************************************************************/ static void _set_config_data (NMConfig *self, NMConfigData *new_data, NMConfigChangeFlags reload_flags); -/************************************************************************/ +/*****************************************************************************/ #define _HAS_PREFIX(str, prefix) \ ({ \ @@ -152,7 +159,7 @@ static void _set_config_data (NMConfig *self, NMConfigData *new_data, NMConfigCh g_str_has_prefix ( _str, ""prefix"") && _str[NM_STRLEN(prefix)] != '\0'; \ }) -/************************************************************************/ +/*****************************************************************************/ gint nm_config_parse_boolean (const char *str, @@ -162,7 +169,7 @@ nm_config_parse_boolean (const char *str, } gint -nm_config_keyfile_get_boolean (GKeyFile *keyfile, +nm_config_keyfile_get_boolean (const GKeyFile *keyfile, const char *section, const char *key, gint default_value) @@ -173,12 +180,12 @@ nm_config_keyfile_get_boolean (GKeyFile *keyfile, g_return_val_if_fail (section != NULL, default_value); g_return_val_if_fail (key != NULL, default_value); - str = g_key_file_get_value (keyfile, section, key, NULL); + str = g_key_file_get_value ((GKeyFile *) keyfile, section, key, NULL); return nm_config_parse_boolean (str, default_value); } char * -nm_config_keyfile_get_value (GKeyFile *keyfile, +nm_config_keyfile_get_value (const GKeyFile *keyfile, const char *section, const char *key, NMConfigGetValueFlags flags) @@ -186,9 +193,9 @@ nm_config_keyfile_get_value (GKeyFile *keyfile, char *value; if (NM_FLAGS_HAS (flags, NM_CONFIG_GET_VALUE_RAW)) - value = g_key_file_get_value (keyfile, section, key, NULL); + value = g_key_file_get_value ((GKeyFile *) keyfile, section, key, NULL); else - value = g_key_file_get_string (keyfile, section, key, NULL); + value = g_key_file_get_string ((GKeyFile *) keyfile, section, key, NULL); if (!value) return NULL; @@ -238,7 +245,7 @@ nm_config_keyfile_set_string_list (GKeyFile *keyfile, g_free (new_value); } -/************************************************************************/ +/*****************************************************************************/ NMConfigData * nm_config_get_data (NMConfig *config) @@ -327,7 +334,7 @@ nm_config_get_is_debug (NMConfig *config) return NM_CONFIG_GET_PRIVATE (config)->cli.is_debug; } -/************************************************************************/ +/*****************************************************************************/ static char ** no_auto_default_from_file (const char *no_auto_default_file) @@ -431,7 +438,7 @@ nm_config_set_no_auto_default_for_device (NMConfig *self, NMDevice *device) _set_config_data (self, new_data, NM_CONFIG_CHANGE_CAUSE_NO_AUTO_DEFAULT); } -/************************************************************************/ +/*****************************************************************************/ static void _nm_config_cmd_line_options_clear (NMConfigCmdLineOptions *cli) @@ -520,7 +527,7 @@ nm_config_cmd_line_options_add_to_entries (NMConfigCmdLineOptions *cli, } } -/************************************************************************/ +/*****************************************************************************/ GKeyFile * nm_config_create_keyfile () @@ -1509,7 +1516,7 @@ intern_config_write (const char *filename, return success; } -/************************************************************************/ +/*****************************************************************************/ GSList * nm_config_get_match_spec (const GKeyFile *keyfile, const char *group, const char *key, gboolean *out_has_key) @@ -1525,7 +1532,7 @@ nm_config_get_match_spec (const GKeyFile *keyfile, const char *group, const char return nm_match_spec_split (value); } -/************************************************************************/ +/*****************************************************************************/ gboolean nm_config_set_global_dns (NMConfig *self, NMGlobalDnsConfig *global_dns, GError **error) @@ -2208,6 +2215,37 @@ nm_config_setup (const NMConfigCmdLineOptions *cli, char **atomic_section_prefix return singleton_instance; } +/*****************************************************************************/ + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMConfig *self = NM_CONFIG (object); + NMConfigPrivate *priv = NM_CONFIG_GET_PRIVATE (self); + NMConfigCmdLineOptions *cli; + + switch (prop_id) { + case PROP_CMD_LINE_OPTIONS: + /* construct only */ + cli = g_value_get_pointer (value); + if (!cli) + _nm_config_cmd_line_options_clear (&priv->cli); + else + _nm_config_cmd_line_options_copy (cli, &priv->cli); + break; + case PROP_ATOMIC_SECTION_PREFIXES: + /* construct only */ + priv->atomic_section_prefixes = g_strdupv (g_value_get_boxed (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/*****************************************************************************/ + static gboolean init_sync (GInitable *initable, GCancellable *cancellable, GError **error) { @@ -2306,6 +2344,16 @@ init_sync (GInitable *initable, GCancellable *cancellable, GError **error) return TRUE; } +/*****************************************************************************/ + +static void +nm_config_init (NMConfig *config) +{ + NMConfigPrivate *priv = NM_CONFIG_GET_PRIVATE (config); + + priv->auth_polkit = NM_CONFIG_DEFAULT_AUTH_POLKIT; +} + NMConfig * nm_config_new (const NMConfigCmdLineOptions *cli, char **atomic_section_prefixes, GError **error) { @@ -2318,17 +2366,9 @@ nm_config_new (const NMConfigCmdLineOptions *cli, char **atomic_section_prefixes } static void -nm_config_init (NMConfig *config) -{ - NMConfigPrivate *priv = NM_CONFIG_GET_PRIVATE (config); - - priv->auth_polkit = NM_CONFIG_DEFAULT_AUTH_POLKIT; -} - -static void finalize (GObject *gobject) { - NMConfigPrivate *priv = NM_CONFIG_GET_PRIVATE (gobject); + NMConfigPrivate *priv = NM_CONFIG_GET_PRIVATE ((NMConfig *) gobject); state_free (priv->state); @@ -2352,55 +2392,27 @@ finalize (GObject *gobject) } static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - NMConfig *self = NM_CONFIG (object); - NMConfigPrivate *priv = NM_CONFIG_GET_PRIVATE (self); - NMConfigCmdLineOptions *cli; - - switch (prop_id) { - case PROP_CMD_LINE_OPTIONS: - /* construct only */ - cli = g_value_get_pointer (value); - if (!cli) - _nm_config_cmd_line_options_clear (&priv->cli); - else - _nm_config_cmd_line_options_copy (cli, &priv->cli); - break; - case PROP_ATOMIC_SECTION_PREFIXES: - /* construct only */ - priv->atomic_section_prefixes = g_strdupv (g_value_get_boxed (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void nm_config_class_init (NMConfigClass *config_class) { GObjectClass *object_class = G_OBJECT_CLASS (config_class); - g_type_class_add_private (config_class, sizeof (NMConfigPrivate)); object_class->finalize = finalize; object_class->set_property = set_property; - g_object_class_install_property - (object_class, PROP_CMD_LINE_OPTIONS, + obj_properties[PROP_CMD_LINE_OPTIONS] = g_param_spec_pointer (NM_CONFIG_CMD_LINE_OPTIONS, "", "", G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); - g_object_class_install_property - (object_class, PROP_ATOMIC_SECTION_PREFIXES, + obj_properties[PROP_ATOMIC_SECTION_PREFIXES] = g_param_spec_boxed (NM_CONFIG_ATOMIC_SECTION_PREFIXES, "", "", G_TYPE_STRV, G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); signals[SIGNAL_CONFIG_CHANGED] = g_signal_new (NM_CONFIG_SIGNAL_CONFIG_CHANGED, @@ -2426,4 +2438,3 @@ nm_config_initable_iface_init (GInitableIface *iface) { iface->init = init_sync; } - diff --git a/src/nm-config.h b/src/nm-config.h index 6ada27672d..1b80e96da8 100644 --- a/src/nm-config.h +++ b/src/nm-config.h @@ -100,13 +100,7 @@ typedef struct { bool dirty; } NMConfigState; -struct _NMConfig { - GObject parent; -}; - -typedef struct { - GObjectClass parent; -} NMConfigClass; +typedef struct _NMConfigClass NMConfigClass; GType nm_config_get_type (void); @@ -160,11 +154,11 @@ void _nm_config_state_set (NMConfig *config, gint nm_config_parse_boolean (const char *str, gint default_value); GKeyFile *nm_config_create_keyfile (void); -gint nm_config_keyfile_get_boolean (GKeyFile *keyfile, +gint nm_config_keyfile_get_boolean (const GKeyFile *keyfile, const char *section, const char *key, gint default_value); -char *nm_config_keyfile_get_value (GKeyFile *keyfile, +char *nm_config_keyfile_get_value (const GKeyFile *keyfile, const char *section, const char *key, NMConfigGetValueFlags flags); @@ -195,14 +189,14 @@ typedef enum { NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_MANAGED = 1, } NMConfigDeviceStateManagedType; -typedef struct { +struct _NMConfigDeviceStateData { int ifindex; NMConfigDeviceStateManagedType managed; /* the UUID of the last settings-connection active * on the device. */ const char *connection_uuid; -} NMConfigDeviceStateData; +}; NMConfigDeviceStateData *nm_config_device_state_load (NMConfig *self, int ifindex); @@ -215,4 +209,3 @@ void nm_config_device_state_prune_unseen (NMConfig *self, GHashTable *seen_ifind /*****************************************************************************/ #endif /* __NETWORKMANAGER_CONFIG_H__ */ - diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c index 7cf3e70797..5d87621013 100644 --- a/src/nm-connectivity.c +++ b/src/nm-connectivity.c @@ -21,28 +21,25 @@ #include "nm-default.h" +#include "nm-connectivity.h" + #include <string.h> #if WITH_CONCHECK #include <libsoup/soup.h> #endif -#include "nm-connectivity.h" #include "nm-config.h" #include "nm-dispatcher.h" #include "NetworkManagerUtils.h" -G_DEFINE_TYPE (NMConnectivity, nm_connectivity, G_TYPE_OBJECT) - -#define NM_CONNECTIVITY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_CONNECTIVITY, NMConnectivityPrivate)) +/*****************************************************************************/ -#define _NMLOG_DOMAIN LOGD_CONCHECK -#define _NMLOG(level, ...) \ - G_STMT_START { \ - nm_log ((level), (_NMLOG_DOMAIN), \ - "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - "connectivity: " \ - _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ - } G_STMT_END +NM_GOBJECT_PROPERTIES_DEFINE (NMConnectivity, + PROP_URI, + PROP_INTERVAL, + PROP_RESPONSE, + PROP_STATE, +); typedef struct { char *uri; @@ -59,15 +56,31 @@ typedef struct { NMConnectivityState state; } NMConnectivityPrivate; -enum { - PROP_0, - PROP_URI, - PROP_INTERVAL, - PROP_RESPONSE, - PROP_STATE, - LAST_PROP +struct _NMConnectivity { + GObject parent; + NMConnectivityPrivate _priv; }; +struct _NMConnectivityClass { + GObjectClass parent; +}; + +G_DEFINE_TYPE (NMConnectivity, nm_connectivity, G_TYPE_OBJECT) + +#define NM_CONNECTIVITY_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMConnectivity, NM_IS_CONNECTIVITY) + +/*****************************************************************************/ + +#define _NMLOG_DOMAIN LOGD_CONCHECK +#define _NMLOG(level, ...) \ + G_STMT_START { \ + nm_log ((level), (_NMLOG_DOMAIN), \ + "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + "connectivity: " \ + _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } G_STMT_END + +/*****************************************************************************/ NMConnectivityState nm_connectivity_get_state (NMConnectivity *connectivity) @@ -96,7 +109,7 @@ update_state (NMConnectivity *self, NMConnectivityState state) nm_connectivity_state_to_string (priv->state), nm_connectivity_state_to_string (state)); priv->state = state; - g_object_notify (G_OBJECT (self), NM_CONNECTIVITY_STATE); + _notify (self, PROP_STATE); /* Notify dispatcher scripts of a connectivity state change */ nm_dispatcher_call_connectivity (DISPATCHER_ACTION_CONNECTIVITY_CHANGE, state); @@ -329,18 +342,35 @@ nm_connectivity_check_finish (NMConnectivity *self, return (NMConnectivityState) g_simple_async_result_get_op_res_gssize (simple); } -/**************************************************************************/ +/*****************************************************************************/ -NMConnectivity * -nm_connectivity_new (const char *uri, - guint interval, - const char *response) +static void +get_property (GObject *object, guint property_id, + GValue *value, GParamSpec *pspec) { - return g_object_new (NM_TYPE_CONNECTIVITY, - NM_CONNECTIVITY_URI, uri, - NM_CONNECTIVITY_INTERVAL, interval, - NM_CONNECTIVITY_RESPONSE, response, - NULL); + NMConnectivity *self = NM_CONNECTIVITY (object); + NMConnectivityPrivate *priv = NM_CONNECTIVITY_GET_PRIVATE (self); + + switch (property_id) { + case PROP_URI: + g_value_set_string (value, priv->uri); + break; + case PROP_INTERVAL: + g_value_set_uint (value, priv->interval); + break; + case PROP_RESPONSE: + if (priv->response) + g_value_set_string (value, priv->response); + else + g_value_set_static_string (value, NM_CONFIG_DEFAULT_CONNECTIVITY_RESPONSE); + break; + case PROP_STATE: + g_value_set_uint (value, priv->state); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } } static void @@ -403,35 +433,7 @@ set_property (GObject *object, guint property_id, } } -static void -get_property (GObject *object, guint property_id, - GValue *value, GParamSpec *pspec) -{ - NMConnectivity *self = NM_CONNECTIVITY (object); - NMConnectivityPrivate *priv = NM_CONNECTIVITY_GET_PRIVATE (self); - - switch (property_id) { - case PROP_URI: - g_value_set_string (value, priv->uri); - break; - case PROP_INTERVAL: - g_value_set_uint (value, priv->interval); - break; - case PROP_RESPONSE: - if (priv->response) - g_value_set_string (value, priv->response); - else - g_value_set_static_string (value, NM_CONFIG_DEFAULT_CONNECTIVITY_RESPONSE); - break; - case PROP_STATE: - g_value_set_uint (value, priv->state); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - +/*****************************************************************************/ static void nm_connectivity_init (NMConnectivity *self) @@ -444,6 +446,17 @@ nm_connectivity_init (NMConnectivity *self) priv->state = NM_CONNECTIVITY_NONE; } +NMConnectivity * +nm_connectivity_new (const char *uri, + guint interval, + const char *response) +{ + return g_object_new (NM_TYPE_CONNECTIVITY, + NM_CONNECTIVITY_URI, uri, + NM_CONNECTIVITY_INTERVAL, interval, + NM_CONNECTIVITY_RESPONSE, response, + NULL); +} static void dispose (GObject *object) @@ -466,48 +479,42 @@ dispose (GObject *object) G_OBJECT_CLASS (nm_connectivity_parent_class)->dispose (object); } - static void nm_connectivity_class_init (NMConnectivityClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMConnectivityPrivate)); - /* virtual methods */ object_class->set_property = set_property; object_class->get_property = get_property; object_class->dispose = dispose; - /* properties */ - g_object_class_install_property - (object_class, PROP_URI, + obj_properties[PROP_URI] = g_param_spec_string (NM_CONNECTIVITY_URI, "", "", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); - g_object_class_install_property - (object_class, PROP_INTERVAL, + obj_properties[PROP_INTERVAL] = g_param_spec_uint (NM_CONNECTIVITY_INTERVAL, "", "", 0, G_MAXUINT, NM_CONFIG_DEFAULT_CONNECTIVITY_INTERVAL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); - g_object_class_install_property - (object_class, PROP_RESPONSE, + obj_properties[PROP_RESPONSE] = g_param_spec_string (NM_CONNECTIVITY_RESPONSE, "", "", NM_CONFIG_DEFAULT_CONNECTIVITY_RESPONSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); - g_object_class_install_property - (object_class, PROP_STATE, + obj_properties[PROP_STATE] = g_param_spec_uint (NM_CONNECTIVITY_STATE, "", "", NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_FULL, NM_CONNECTIVITY_UNKNOWN, G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); } diff --git a/src/nm-connectivity.h b/src/nm-connectivity.h index 10fcef97af..6900bd0fa8 100644 --- a/src/nm-connectivity.h +++ b/src/nm-connectivity.h @@ -30,19 +30,12 @@ #define NM_IS_CONNECTIVITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_CONNECTIVITY)) #define NM_CONNECTIVITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_CONNECTIVITY, NMConnectivityClass)) -/* Properties */ #define NM_CONNECTIVITY_URI "uri" #define NM_CONNECTIVITY_INTERVAL "interval" #define NM_CONNECTIVITY_RESPONSE "response" #define NM_CONNECTIVITY_STATE "state" -struct _NMConnectivity { - GObject parent; -}; - -typedef struct { - GObjectClass parent; -} NMConnectivityClass; +typedef struct _NMConnectivityClass NMConnectivityClass; GType nm_connectivity_get_type (void); diff --git a/src/nm-core-utils.c b/src/nm-core-utils.c index e85f9c38bf..00ab2d3800 100644 --- a/src/nm-core-utils.c +++ b/src/nm-core-utils.c @@ -520,7 +520,7 @@ fail: return 0; } -/******************************************************************************************/ +/*****************************************************************************/ typedef struct { pid_t pid; @@ -1167,7 +1167,7 @@ nm_utils_find_helper(const char *progname, const char *try_first, GError **error return nm_utils_file_search_in_paths (progname, try_first, NM_PATHS_DEFAULT, G_FILE_TEST_IS_EXECUTABLE, NULL, NULL, error); } -/******************************************************************************************/ +/*****************************************************************************/ /** * nm_utils_read_link_absolute: @@ -1201,7 +1201,7 @@ nm_utils_read_link_absolute (const char *link_file, GError **error) return ln_abs; } -/******************************************************************************************/ +/*****************************************************************************/ #define MAC_TAG "mac:" #define INTERFACE_NAME_TAG "interface-name:" @@ -2083,7 +2083,7 @@ nm_utils_cmp_connection_by_autoconnect_priority (NMConnection **a, NMConnection return 0; } -/**************************************************************************/ +/*****************************************************************************/ static gint64 monotonic_timestamp_offset_sec; static int monotonic_timestamp_clock_mode = 0; @@ -2652,7 +2652,7 @@ nm_utils_is_specific_hostname (const char *name) return FALSE; } -/******************************************************************/ +/*****************************************************************************/ gboolean nm_utils_machine_id_parse (const char *id_str, /*uuid_t*/ guchar *out_uuid) diff --git a/src/nm-default-route-manager.c b/src/nm-default-route-manager.c index 2fd2c7db47..c93e46fca2 100644 --- a/src/nm-default-route-manager.c +++ b/src/nm-default-route-manager.c @@ -21,16 +21,23 @@ #include "nm-default.h" +#include "nm-default-route-manager.h" + #include <string.h> -#include "nm-default-route-manager.h" #include "nm-device.h" #include "nm-vpn-connection.h" #include "nm-platform.h" #include "nm-manager.h" #include "nm-ip4-config.h" #include "nm-ip6-config.h" -#include "nm-activation-request.h" +#include "nm-act-request.h" + +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_PLATFORM, +); typedef struct { GPtrArray *entries_ip4; @@ -54,16 +61,23 @@ typedef struct { NMPlatform *platform; } NMDefaultRouteManagerPrivate; -#define NM_DEFAULT_ROUTE_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEFAULT_ROUTE_MANAGER, NMDefaultRouteManagerPrivate)) +struct _NMDefaultRouteManager { + GObject parent; + NMDefaultRouteManagerPrivate _priv; +}; + +struct _NMDefaultRouteManagerClass { + GObjectClass parent; +}; G_DEFINE_TYPE (NMDefaultRouteManager, nm_default_route_manager, G_TYPE_OBJECT) -NM_GOBJECT_PROPERTIES_DEFINE_BASE ( - PROP_PLATFORM, -); +#define NM_DEFAULT_ROUTE_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDefaultRouteManager, NM_IS_DEFAULT_ROUTE_MANAGER) NM_DEFINE_SINGLETON_GETTER (NMDefaultRouteManager, nm_default_route_manager_get, NM_TYPE_DEFAULT_ROUTE_MANAGER); +/*****************************************************************************/ + #define _NMLOG_PREFIX_NAME "default-route" #undef _NMLOG_ENABLED #define _NMLOG_ENABLED(level, addr_family) \ @@ -127,11 +141,11 @@ NM_DEFINE_SINGLETON_GETTER (NMDefaultRouteManager, nm_default_route_manager_get, } \ } G_STMT_END -/***********************************************************************************/ +/*****************************************************************************/ static void _resync_idle_cancel (NMDefaultRouteManager *self); -/***********************************************************************************/ +/*****************************************************************************/ typedef struct { union { @@ -695,7 +709,7 @@ _entry_at_idx_remove (const VTableIP *vtable, NMDefaultRouteManager *self, guint _entry_free (entry); } -/***********************************************************************************/ +/*****************************************************************************/ static void _ipx_update_default_route (const VTableIP *vtable, NMDefaultRouteManager *self, gpointer source) @@ -888,7 +902,7 @@ nm_default_route_manager_ip6_update_default_route (NMDefaultRouteManager *self, _ipx_update_default_route (&vtable_ip6, self, source); } -/***********************************************************************************/ +/*****************************************************************************/ static gboolean _ipx_connection_has_default_route (const VTableIP *vtable, NMDefaultRouteManager *self, NMConnection *connection, gboolean *out_is_never_default) @@ -947,7 +961,7 @@ nm_default_route_manager_ip6_connection_has_default_route (NMDefaultRouteManager return _ipx_connection_has_default_route (&vtable_ip6, self, connection, out_is_never_default); } -/***********************************************************************************/ +/*****************************************************************************/ static NMDevice * _ipx_get_best_device (const VTableIP *vtable, NMDefaultRouteManager *self, const GSList *devices) @@ -1085,7 +1099,7 @@ nm_default_route_manager_ip6_get_best_device (NMDefaultRouteManager *self, const return _ipx_get_best_activating_device (&vtable_ip6, self, devices, preferred_device); } -/***********************************************************************************/ +/*****************************************************************************/ static gpointer _ipx_get_best_config (const VTableIP *vtable, @@ -1218,7 +1232,7 @@ nm_default_route_manager_ip6_get_best_config (NMDefaultRouteManager *self, out_vpn); } -/***********************************************************************************/ +/*****************************************************************************/ static GPtrArray * _v4_get_entries (NMDefaultRouteManagerPrivate *priv) @@ -1242,7 +1256,7 @@ static const VTableIP vtable_ip6 = { .get_entries = _v6_get_entries, }; -/***********************************************************************************/ +/*****************************************************************************/ static gboolean _resync_idle_now (NMDefaultRouteManager *self) @@ -1374,7 +1388,7 @@ _platform_changed_cb (NMPlatform *platform, } } -/***********************************************************************************/ +/*****************************************************************************/ static void set_property (GObject *object, guint prop_id, @@ -1397,6 +1411,8 @@ set_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + static void nm_default_route_manager_init (NMDefaultRouteManager *self) { @@ -1464,9 +1480,6 @@ nm_default_route_manager_class_init (NMDefaultRouteManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMDefaultRouteManagerPrivate)); - - /* virtual methods */ object_class->constructed = constructed; object_class->dispose = dispose; object_class->set_property = set_property; @@ -1477,7 +1490,6 @@ nm_default_route_manager_class_init (NMDefaultRouteManagerClass *klass) G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); - g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); } - diff --git a/src/nm-default-route-manager.h b/src/nm-default-route-manager.h index 30f130a476..bd5e873295 100644 --- a/src/nm-default-route-manager.h +++ b/src/nm-default-route-manager.h @@ -32,13 +32,7 @@ #define NM_DEFAULT_ROUTE_MANAGER_PLATFORM "platform" -struct _NMDefaultRouteManager { - GObject parent; -}; - -typedef struct { - GObjectClass parent; -} NMDefaultRouteManagerClass; +typedef struct _NMDefaultRouteManagerClass NMDefaultRouteManagerClass; GType nm_default_route_manager_get_type (void); @@ -68,4 +62,3 @@ NMIP6Config *nm_default_route_manager_ip6_get_best_config (NMDefaultRouteManager NMVpnConnection **out_vpn); #endif /* NM_DEFAULT_ROUTE_MANAGER_H */ - diff --git a/src/nm-dhcp4-config.c b/src/nm-dhcp4-config.c index 26c6ab0b43..00aee8fafb 100644 --- a/src/nm-dhcp4-config.c +++ b/src/nm-dhcp4-config.c @@ -20,36 +20,40 @@ #include "nm-default.h" +#include "nm-dhcp4-config.h" + #include <string.h> #include "nm-dbus-interface.h" -#include "nm-dhcp4-config.h" #include "nm-utils.h" +#include "nm-exported-object.h" #include "nmdbus-dhcp4-config.h" -G_DEFINE_TYPE (NMDhcp4Config, nm_dhcp4_config, NM_TYPE_EXPORTED_OBJECT) +/*****************************************************************************/ -#define NM_DHCP4_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP4_CONFIG, NMDhcp4ConfigPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE (NMDhcp4Config, + PROP_OPTIONS, +); typedef struct { GVariant *options; } NMDhcp4ConfigPrivate; +struct _NMDhcp4Config { + NMExportedObject parent; + NMDhcp4ConfigPrivate _priv; +}; -enum { - PROP_0, - PROP_OPTIONS, - - LAST_PROP +struct _NMDhcp4ConfigClass { + NMExportedObjectClass parent; }; +G_DEFINE_TYPE (NMDhcp4Config, nm_dhcp4_config, NM_TYPE_EXPORTED_OBJECT) -NMDhcp4Config * -nm_dhcp4_config_new (void) -{ - return NM_DHCP4_CONFIG (g_object_new (NM_TYPE_DHCP4_CONFIG, NULL)); -} +#define NM_DHCP4_CONFIG_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDhcp4Config, NM_IS_DHCP4_CONFIG) + +/*****************************************************************************/ void nm_dhcp4_config_set_options (NMDhcp4Config *self, @@ -72,7 +76,7 @@ nm_dhcp4_config_set_options (NMDhcp4Config *self, priv->options = g_variant_builder_end (&builder); g_variant_ref_sink (priv->options); - g_object_notify (G_OBJECT (self), NM_DHCP4_CONFIG_OPTIONS); + _notify (self, PROP_OPTIONS); } const char * @@ -98,6 +102,26 @@ nm_dhcp4_config_get_options (NMDhcp4Config *self) return g_variant_ref (NM_DHCP4_CONFIG_GET_PRIVATE (self)->options); } +/*****************************************************************************/ + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NMDhcp4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE ((NMDhcp4Config *) object); + + switch (prop_id) { + case PROP_OPTIONS: + g_value_set_variant (value, priv->options); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/*****************************************************************************/ + static void nm_dhcp4_config_init (NMDhcp4Config *self) { @@ -107,10 +131,16 @@ nm_dhcp4_config_init (NMDhcp4Config *self) g_variant_ref_sink (priv->options); } +NMDhcp4Config * +nm_dhcp4_config_new (void) +{ + return NM_DHCP4_CONFIG (g_object_new (NM_TYPE_DHCP4_CONFIG, NULL)); +} + static void finalize (GObject *object) { - NMDhcp4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE (object); + NMDhcp4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE ((NMDhcp4Config *) object); g_variant_unref (priv->options); @@ -118,44 +148,25 @@ finalize (GObject *object) } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - NMDhcp4ConfigPrivate *priv = NM_DHCP4_CONFIG_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_OPTIONS: - g_value_set_variant (value, priv->options); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void nm_dhcp4_config_class_init (NMDhcp4ConfigClass *config_class) { GObjectClass *object_class = G_OBJECT_CLASS (config_class); NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (config_class); - g_type_class_add_private (config_class, sizeof (NMDhcp4ConfigPrivate)); + object_class->get_property = get_property; + object_class->finalize = finalize; exported_object_class->export_path = NM_DBUS_PATH "/DHCP4Config/%u"; exported_object_class->export_on_construction = TRUE; - /* virtual methods */ - object_class->get_property = get_property; - object_class->finalize = finalize; + obj_properties[PROP_OPTIONS] = + g_param_spec_variant (NM_DHCP4_CONFIG_OPTIONS, "", "", + G_VARIANT_TYPE ("a{sv}"), + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); - /* properties */ - g_object_class_install_property - (object_class, PROP_OPTIONS, - g_param_spec_variant (NM_DHCP4_CONFIG_OPTIONS, "", "", - G_VARIANT_TYPE ("a{sv}"), - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (config_class), NMDBUS_TYPE_DHCP4_CONFIG_SKELETON, diff --git a/src/nm-dhcp4-config.h b/src/nm-dhcp4-config.h index 080e28deff..7fdf0653e3 100644 --- a/src/nm-dhcp4-config.h +++ b/src/nm-dhcp4-config.h @@ -21,8 +21,6 @@ #ifndef __NETWORKMANAGER_DHCP4_CONFIG_H__ #define __NETWORKMANAGER_DHCP4_CONFIG_H__ -#include "nm-exported-object.h" - #define NM_TYPE_DHCP4_CONFIG (nm_dhcp4_config_get_type ()) #define NM_DHCP4_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DHCP4_CONFIG, NMDhcp4Config)) #define NM_DHCP4_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DHCP4_CONFIG, NMDhcp4ConfigClass)) @@ -30,17 +28,10 @@ #define NM_IS_DHCP4_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP4_CONFIG)) #define NM_DHCP4_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP4_CONFIG, NMDhcp4ConfigClass)) -struct _NMDhcp4Config { - NMExportedObject parent; -}; - -typedef struct { - NMExportedObjectClass parent; - -} NMDhcp4ConfigClass; - #define NM_DHCP4_CONFIG_OPTIONS "options" +typedef struct _NMDhcp4ConfigClass NMDhcp4ConfigClass; + GType nm_dhcp4_config_get_type (void); NMDhcp4Config *nm_dhcp4_config_new (void); diff --git a/src/nm-dhcp6-config.c b/src/nm-dhcp6-config.c index 4311ee985e..2d878cde5b 100644 --- a/src/nm-dhcp6-config.c +++ b/src/nm-dhcp6-config.c @@ -20,36 +20,40 @@ #include "nm-default.h" +#include "nm-dhcp6-config.h" + #include <string.h> #include "nm-dbus-interface.h" -#include "nm-dhcp6-config.h" #include "nm-utils.h" +#include "nm-exported-object.h" #include "nmdbus-dhcp6-config.h" -G_DEFINE_TYPE (NMDhcp6Config, nm_dhcp6_config, NM_TYPE_EXPORTED_OBJECT) +/*****************************************************************************/ -#define NM_DHCP6_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DHCP6_CONFIG, NMDhcp6ConfigPrivate)) +NM_GOBJECT_PROPERTIES_DEFINE (NMDhcp6Config, + PROP_OPTIONS, +); typedef struct { GVariant *options; } NMDhcp6ConfigPrivate; +struct _NMDhcp6Config { + NMExportedObject parent; + NMDhcp6ConfigPrivate _priv; +}; -enum { - PROP_0, - PROP_OPTIONS, - - LAST_PROP +struct _NMDhcp6ConfigClass { + NMExportedObjectClass parent; }; +G_DEFINE_TYPE (NMDhcp6Config, nm_dhcp6_config, NM_TYPE_EXPORTED_OBJECT) -NMDhcp6Config * -nm_dhcp6_config_new (void) -{ - return NM_DHCP6_CONFIG (g_object_new (NM_TYPE_DHCP6_CONFIG, NULL)); -} +#define NM_DHCP6_CONFIG_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDhcp6Config, NM_IS_DHCP6_CONFIG) + +/*****************************************************************************/ void nm_dhcp6_config_set_options (NMDhcp6Config *self, @@ -72,7 +76,7 @@ nm_dhcp6_config_set_options (NMDhcp6Config *self, priv->options = g_variant_builder_end (&builder); g_variant_ref_sink (priv->options); - g_object_notify (G_OBJECT (self), NM_DHCP6_CONFIG_OPTIONS); + _notify (self, PROP_OPTIONS); } const char * @@ -98,6 +102,24 @@ nm_dhcp6_config_get_options (NMDhcp6Config *self) return g_variant_ref (NM_DHCP6_CONFIG_GET_PRIVATE (self)->options); } +/*****************************************************************************/ + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NMDhcp6ConfigPrivate *priv = NM_DHCP6_CONFIG_GET_PRIVATE ((NMDhcp6Config *) object); + + switch (prop_id) { + case PROP_OPTIONS: + g_value_set_variant (value, priv->options); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + static void nm_dhcp6_config_init (NMDhcp6Config *self) { @@ -107,10 +129,16 @@ nm_dhcp6_config_init (NMDhcp6Config *self) g_variant_ref_sink (priv->options); } +NMDhcp6Config * +nm_dhcp6_config_new (void) +{ + return NM_DHCP6_CONFIG (g_object_new (NM_TYPE_DHCP6_CONFIG, NULL)); +} + static void finalize (GObject *object) { - NMDhcp6ConfigPrivate *priv = NM_DHCP6_CONFIG_GET_PRIVATE (object); + NMDhcp6ConfigPrivate *priv = NM_DHCP6_CONFIG_GET_PRIVATE ((NMDhcp6Config *) object); g_variant_unref (priv->options); @@ -118,44 +146,25 @@ finalize (GObject *object) } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - NMDhcp6ConfigPrivate *priv = NM_DHCP6_CONFIG_GET_PRIVATE (object); - - switch (prop_id) { - case PROP_OPTIONS: - g_value_set_variant (value, priv->options); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void nm_dhcp6_config_class_init (NMDhcp6ConfigClass *config_class) { GObjectClass *object_class = G_OBJECT_CLASS (config_class); NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (config_class); - g_type_class_add_private (config_class, sizeof (NMDhcp6ConfigPrivate)); + object_class->get_property = get_property; + object_class->finalize = finalize; exported_object_class->export_path = NM_DBUS_PATH "/DHCP6Config/%u"; exported_object_class->export_on_construction = TRUE; - /* virtual methods */ - object_class->get_property = get_property; - object_class->finalize = finalize; + obj_properties[PROP_OPTIONS] = + g_param_spec_variant (NM_DHCP6_CONFIG_OPTIONS, "", "", + G_VARIANT_TYPE ("a{sv}"), + NULL, + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS); - /* properties */ - g_object_class_install_property - (object_class, PROP_OPTIONS, - g_param_spec_variant (NM_DHCP6_CONFIG_OPTIONS, "", "", - G_VARIANT_TYPE ("a{sv}"), - NULL, - G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (config_class), NMDBUS_TYPE_DHCP6_CONFIG_SKELETON, diff --git a/src/nm-dhcp6-config.h b/src/nm-dhcp6-config.h index c018d97f0c..6241845afa 100644 --- a/src/nm-dhcp6-config.h +++ b/src/nm-dhcp6-config.h @@ -21,8 +21,6 @@ #ifndef __NETWORKMANAGER_DHCP6_CONFIG_H__ #define __NETWORKMANAGER_DHCP6_CONFIG_H__ -#include "nm-exported-object.h" - #define NM_TYPE_DHCP6_CONFIG (nm_dhcp6_config_get_type ()) #define NM_DHCP6_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DHCP6_CONFIG, NMDhcp6Config)) #define NM_DHCP6_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DHCP6_CONFIG, NMDhcp6ConfigClass)) @@ -30,17 +28,10 @@ #define NM_IS_DHCP6_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DHCP6_CONFIG)) #define NM_DHCP6_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DHCP6_CONFIG, NMDhcp6ConfigClass)) -struct _NMDhcp6Config { - NMExportedObject parent; -}; - -typedef struct { - NMExportedObjectClass parent; - -} NMDhcp6ConfigClass; - #define NM_DHCP6_CONFIG_OPTIONS "options" +typedef struct _NMDhcp6ConfigClass NMDhcp6ConfigClass; + GType nm_dhcp6_config_get_type (void); NMDhcp6Config *nm_dhcp6_config_new (void); diff --git a/src/nm-exported-object.c b/src/nm-exported-object.c index 32b5ec05dd..d3c3d1fdc3 100644 --- a/src/nm-exported-object.c +++ b/src/nm-exported-object.c @@ -37,15 +37,13 @@ static gboolean quitting = FALSE; -G_DEFINE_ABSTRACT_TYPE (NMExportedObject, nm_exported_object, G_TYPE_DBUS_OBJECT_SKELETON); - typedef struct { GDBusInterfaceSkeleton *interface; guint property_changed_signal_id; GHashTable *pending_notifies; } InterfaceData; -typedef struct { +typedef struct _NMExportedObjectPrivate { NMBusManager *bus_mgr; char *path; @@ -59,7 +57,11 @@ typedef struct { #endif } NMExportedObjectPrivate; -#define NM_EXPORTED_OBJECT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_EXPORTED_OBJECT, NMExportedObjectPrivate)) +G_DEFINE_ABSTRACT_TYPE (NMExportedObject, nm_exported_object, G_TYPE_DBUS_OBJECT_SKELETON); + +#define NM_EXPORTED_OBJECT_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR (self, NMExportedObject, NM_IS_EXPORTED_OBJECT) + +/*****************************************************************************/ typedef struct { GHashTable *properties; @@ -800,7 +802,7 @@ _sort_pending_notifies (gconstpointer a, gconstpointer b, gpointer user_da static gboolean idle_emit_properties_changed (gpointer self) { - NMExportedObjectPrivate *priv = NM_EXPORTED_OBJECT_GET_PRIVATE (self); + NMExportedObjectPrivate *priv = NM_EXPORTED_OBJECT_GET_PRIVATE (NM_EXPORTED_OBJECT (self)); guint k; priv->notify_idle_id = 0; @@ -969,6 +971,10 @@ vtype_found: static void nm_exported_object_init (NMExportedObject *self) { + NMExportedObjectPrivate *priv; + + priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_EXPORTED_OBJECT, NMExportedObjectPrivate); + self->_priv = priv; } static void @@ -979,7 +985,7 @@ constructed (GObject *object) G_OBJECT_CLASS (nm_exported_object_parent_class)->constructed (object); #ifdef _ASSERT_NO_EARLY_EXPORT - NM_EXPORTED_OBJECT_GET_PRIVATE (object)->_constructed = TRUE; + NM_EXPORTED_OBJECT_GET_PRIVATE (NM_EXPORTED_OBJECT (object))->_constructed = TRUE; #endif klass = NM_EXPORTED_OBJECT_GET_CLASS (object); @@ -989,9 +995,9 @@ constructed (GObject *object) } static void -nm_exported_object_dispose (GObject *object) +dispose (GObject *object) { - NMExportedObjectPrivate *priv = NM_EXPORTED_OBJECT_GET_PRIVATE (object); + NMExportedObjectPrivate *priv = NM_EXPORTED_OBJECT_GET_PRIVATE (NM_EXPORTED_OBJECT (object)); /* Objects should have already been unexported by their owner, unless * we are quitting, where many objects stick around until exit. @@ -1018,7 +1024,5 @@ nm_exported_object_class_init (NMExportedObjectClass *klass) object_class->constructed = constructed; object_class->notify = nm_exported_object_notify; - object_class->dispose = nm_exported_object_dispose; + object_class->dispose = dispose; } - - diff --git a/src/nm-exported-object.h b/src/nm-exported-object.h index 7036e0d032..75f9c59a6d 100644 --- a/src/nm-exported-object.h +++ b/src/nm-exported-object.h @@ -47,8 +47,11 @@ void nm_exported_object_skeleton_release (GDBusInterfaceSkeleton *interface); #define NM_IS_EXPORTED_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_EXPORTED_OBJECT)) #define NM_EXPORTED_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_EXPORTED_OBJECT, NMExportedObjectClass)) +struct _NMExportedObjectPrivate; + struct _NMExportedObject { GDBusObjectSkeleton parent; + struct _NMExportedObjectPrivate *_priv; }; typedef struct { diff --git a/src/nm-firewall-manager.c b/src/nm-firewall-manager.c index f1d0170b03..5ba3d23e34 100644 --- a/src/nm-firewall-manager.c +++ b/src/nm-firewall-manager.c @@ -26,19 +26,19 @@ #include "NetworkManagerUtils.h" -#define NM_FIREWALL_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ - NM_TYPE_FIREWALL_MANAGER, \ - NMFirewallManagerPrivate)) +/*****************************************************************************/ -G_DEFINE_TYPE (NMFirewallManager, nm_firewall_manager, G_TYPE_OBJECT) +NM_GOBJECT_PROPERTIES_DEFINE (NMFirewallManager, + PROP_AVAILABLE, +); -/* Properties */ enum { - PROP_0 = 0, - PROP_AVAILABLE, - LAST_PROP + STARTED, + LAST_SIGNAL }; +static guint signals[LAST_SIGNAL] = { 0 }; + typedef struct { GDBusProxy * proxy; gboolean running; @@ -46,17 +46,24 @@ typedef struct { GHashTable *pending_calls; } NMFirewallManagerPrivate; -enum { - STARTED, +struct _NMFirewallManager { + GObject parent; + NMFirewallManagerPrivate _priv; +}; - LAST_SIGNAL +struct _NMFirewallManagerClass { + GObjectClass parent; }; -static guint signals[LAST_SIGNAL] = { 0 }; +G_DEFINE_TYPE (NMFirewallManager, nm_firewall_manager, G_TYPE_OBJECT) + +#define NM_FIREWALL_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMFirewallManager, NM_IS_FIREWALL_MANAGER) + +/*****************************************************************************/ NM_DEFINE_SINGLETON_GETTER (NMFirewallManager, nm_firewall_manager_get, NM_TYPE_FIREWALL_MANAGER); -/********************************************************************/ +/*****************************************************************************/ typedef enum { CB_INFO_OPS_ADD = 1, @@ -89,7 +96,7 @@ struct _NMFirewallManagerCallId { }; typedef struct _NMFirewallManagerCallId CBInfo; -/********************************************************************/ +/*****************************************************************************/ static const char * _ops_type_to_string (CBInfoOpsType ops_type) @@ -131,7 +138,7 @@ _ops_type_to_string (CBInfoOpsType ops_type) } \ } G_STMT_END -/********************************************************************/ +/*****************************************************************************/ static gboolean _cb_info_is_idle (CBInfo *info) @@ -396,7 +403,7 @@ nm_firewall_manager_cancel_call (NMFirewallManagerCallId call) } } -/*******************************************************************/ +/*****************************************************************************/ static void set_running (NMFirewallManager *self, gboolean now_running) @@ -406,7 +413,7 @@ set_running (NMFirewallManager *self, gboolean now_running) priv->running = now_running; if (old_running != priv->running) - g_object_notify (G_OBJECT (self), NM_FIREWALL_MANAGER_AVAILABLE); + _notify (self, PROP_AVAILABLE); } static void @@ -428,7 +435,22 @@ name_owner_changed (GObject *object, } } -/*******************************************************************/ +/*****************************************************************************/ + +static void +get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) +{ + switch (prop_id) { + case PROP_AVAILABLE: + g_value_set_boolean (value, NM_FIREWALL_MANAGER_GET_PRIVATE ((NMFirewallManager *) object)->running); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/*****************************************************************************/ static void nm_firewall_manager_init (NMFirewallManager * self) @@ -456,32 +478,18 @@ constructed (GObject *object) FIREWALL_DBUS_PATH, FIREWALL_DBUS_INTERFACE_ZONE, NULL, &error); - if (priv->proxy) { + if (priv->proxy) { g_signal_connect (priv->proxy, "notify::g-name-owner", - G_CALLBACK (name_owner_changed), self); + G_CALLBACK (name_owner_changed), self); owner = g_dbus_proxy_get_name_owner (priv->proxy); priv->running = (owner != NULL); - } else { - _LOGW (NULL, "could not connect to system D-Bus (%s)", error->message); - } + } else + _LOGW (NULL, "could not connect to system D-Bus (%s)", error->message); _LOGD (NULL, "firewall constructed (%srunning)", priv->running ? "" : "not"); } static void -get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) -{ - switch (prop_id) { - case PROP_AVAILABLE: - g_value_set_boolean (value, NM_FIREWALL_MANAGER_GET_PRIVATE (object)->running); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void dispose (GObject *object) { NMFirewallManager *self = NM_FIREWALL_MANAGER (object); @@ -497,7 +505,6 @@ dispose (GObject *object) g_clear_object (&priv->proxy); - /* Chain up to the parent class */ G_OBJECT_CLASS (nm_firewall_manager_parent_class)->dispose (object); } @@ -506,27 +513,24 @@ nm_firewall_manager_class_init (NMFirewallManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMFirewallManagerPrivate)); - object_class->constructed = constructed; object_class->get_property = get_property; object_class->dispose = dispose; - g_object_class_install_property - (object_class, PROP_AVAILABLE, + obj_properties[PROP_AVAILABLE] = g_param_spec_boolean (NM_FIREWALL_MANAGER_AVAILABLE, "", "", FALSE, G_PARAM_READABLE | - G_PARAM_STATIC_STRINGS)); + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); signals[STARTED] = g_signal_new (NM_FIREWALL_MANAGER_STARTED, G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMFirewallManagerClass, started), + 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); - } - diff --git a/src/nm-firewall-manager.h b/src/nm-firewall-manager.h index 92fac8e2fc..a00ee451e7 100644 --- a/src/nm-firewall-manager.h +++ b/src/nm-firewall-manager.h @@ -26,30 +26,21 @@ #define FIREWALL_DBUS_INTERFACE "org.fedoraproject.FirewallD1" #define FIREWALL_DBUS_INTERFACE_ZONE "org.fedoraproject.FirewallD1.zone" -#define NM_TYPE_FIREWALL_MANAGER (nm_firewall_manager_get_type ()) -#define NM_FIREWALL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_FIREWALL_MANAGER, NMFirewallManager)) -#define NM_FIREWALL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_FIREWALL_MANAGER, NMFirewallManagerClass)) -#define NM_IS_FIREWALL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_FIREWALL_MANAGER)) -#define NM_IS_FIREWALL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_FIREWALL_MANAGER)) -#define NM_FIREWALL_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_FIREWALL_MANAGER, NMFirewallManagerClass)) +#define NM_TYPE_FIREWALL_MANAGER (nm_firewall_manager_get_type ()) +#define NM_FIREWALL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_FIREWALL_MANAGER, NMFirewallManager)) +#define NM_FIREWALL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_FIREWALL_MANAGER, NMFirewallManagerClass)) +#define NM_IS_FIREWALL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_FIREWALL_MANAGER)) +#define NM_IS_FIREWALL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_FIREWALL_MANAGER)) +#define NM_FIREWALL_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_FIREWALL_MANAGER, NMFirewallManagerClass)) #define NM_FIREWALL_MANAGER_AVAILABLE "available" #define NM_FIREWALL_MANAGER_STARTED "started" -struct _NMFirewallManagerCallId; typedef struct _NMFirewallManagerCallId *NMFirewallManagerCallId; -typedef struct { - GObject parent; -} NMFirewallManager; - -typedef struct { - GObjectClass parent; - - /* Signals */ - void (*started) (NMFirewallManager *manager); -} NMFirewallManagerClass; +typedef struct _NMFirewallManager NMFirewallManager; +typedef struct _NMFirewallManagerClass NMFirewallManagerClass; GType nm_firewall_manager_get_type (void); diff --git a/src/nm-iface-helper.c b/src/nm-iface-helper.c index b864530473..3d270fa4df 100644 --- a/src/nm-iface-helper.c +++ b/src/nm-iface-helper.c @@ -519,7 +519,7 @@ main (int argc, char *argv[]) exit (0); } -/*******************************************************/ +/*****************************************************************************/ /* Stub functions */ void diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index a4d4361248..da3b796c21 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -104,7 +104,7 @@ nm_ip4_config_get_ifindex (const NMIP4Config *config) return NM_IP4_CONFIG_GET_PRIVATE (config)->ifindex; } -/******************************************************************/ +/*****************************************************************************/ static gboolean _ipv4_is_zeronet (in_addr_t network) @@ -113,7 +113,7 @@ _ipv4_is_zeronet (in_addr_t network) return (network & htonl(0xff000000)) == htonl(0x00000000); } -/******************************************************************/ +/*****************************************************************************/ /** * nm_ip4_config_capture_resolv_conf(): @@ -650,7 +650,7 @@ nm_ip4_config_create_setting (const NMIP4Config *config) return NM_SETTING (s_ip4); } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_merge (NMIP4Config *dst, const NMIP4Config *src, NMIPConfigMergeFlags merge_flags) @@ -745,7 +745,7 @@ nm_ip4_config_merge (NMIP4Config *dst, const NMIP4Config *src, NMIPConfigMergeFl g_object_thaw_notify (G_OBJECT (dst)); } -/*******************************************************************************/ +/*****************************************************************************/ static int _addresses_get_index (const NMIP4Config *self, const NMPlatformIP4Address *addr) @@ -868,7 +868,7 @@ _wins_get_index (const NMIP4Config *self, guint32 wins_server) return -1; } -/*******************************************************************************/ +/*****************************************************************************/ /** * nm_ip4_config_subtract: @@ -1388,7 +1388,7 @@ nm_ip4_config_destination_is_direct (const NMIP4Config *config, guint32 network, return FALSE; } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_set_never_default (NMIP4Config *config, gboolean never_default) @@ -1464,7 +1464,7 @@ nm_ip4_config_get_route_metric (const NMIP4Config *config) return priv->route_metric; } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_reset_addresses (NMIP4Config *config) @@ -1570,7 +1570,7 @@ nm_ip4_config_address_exists (const NMIP4Config *config, return _addresses_get_index (config, needle) >= 0; } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_reset_routes (NMIP4Config *config) @@ -1685,7 +1685,7 @@ nm_ip4_config_get_direct_route_for_host (const NMIP4Config *config, guint32 host return best_route; } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_reset_nameservers (NMIP4Config *config) @@ -1741,7 +1741,7 @@ nm_ip4_config_get_nameserver (const NMIP4Config *config, guint i) return g_array_index (priv->nameservers, guint32, i); } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_reset_domains (NMIP4Config *config) @@ -1798,7 +1798,7 @@ nm_ip4_config_get_domain (const NMIP4Config *config, guint i) return g_ptr_array_index (priv->domains, i); } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_reset_searches (NMIP4Config *config) @@ -1870,7 +1870,7 @@ nm_ip4_config_get_search (const NMIP4Config *config, guint i) return g_ptr_array_index (priv->searches, i); } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_reset_dns_options (NMIP4Config *config) @@ -1927,7 +1927,7 @@ nm_ip4_config_get_dns_option (const NMIP4Config *config, guint i) return g_ptr_array_index (priv->dns_options, i); } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_set_dns_priority (NMIP4Config *config, gint priority) @@ -1948,7 +1948,7 @@ nm_ip4_config_get_dns_priority (const NMIP4Config *config) return priv->dns_priority; } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_set_mss (NMIP4Config *config, guint32 mss) @@ -1966,7 +1966,7 @@ nm_ip4_config_get_mss (const NMIP4Config *config) return priv->mss; } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_reset_nis_servers (NMIP4Config *config) @@ -2032,7 +2032,7 @@ nm_ip4_config_get_nis_domain (const NMIP4Config *config) return priv->nis_domain; } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_reset_wins (NMIP4Config *config) @@ -2088,7 +2088,7 @@ nm_ip4_config_get_wins (const NMIP4Config *config, guint i) return g_array_index (priv->wins, guint32, i); } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_set_mtu (NMIP4Config *config, guint32 mtu, NMIPConfigSource source) @@ -2118,7 +2118,7 @@ nm_ip4_config_get_mtu_source (const NMIP4Config *config) return priv->mtu_source; } -/******************************************************************/ +/*****************************************************************************/ void nm_ip4_config_set_metered (NMIP4Config *config, gboolean metered) @@ -2136,7 +2136,7 @@ nm_ip4_config_get_metered (const NMIP4Config *config) return priv->metered; } -/******************************************************************/ +/*****************************************************************************/ static inline void hash_u32 (GChecksum *sum, guint32 n) @@ -2243,7 +2243,7 @@ nm_ip4_config_equal (const NMIP4Config *a, const NMIP4Config *b) return equal; } -/******************************************************************/ +/*****************************************************************************/ static void nm_ip4_config_init (NMIP4Config *config) diff --git a/src/nm-ip4-config.h b/src/nm-ip4-config.h index f302630a0c..ffcdc9b356 100644 --- a/src/nm-ip4-config.h +++ b/src/nm-ip4-config.h @@ -163,7 +163,7 @@ gboolean nm_ip4_config_get_metered (const NMIP4Config *config); void nm_ip4_config_hash (const NMIP4Config *config, GChecksum *sum, gboolean dns_only); gboolean nm_ip4_config_equal (const NMIP4Config *a, const NMIP4Config *b); -/******************************************************/ +/*****************************************************************************/ /* Testing-only functions */ gboolean nm_ip4_config_capture_resolv_conf (GArray *nameservers, GPtrArray *dns_options, diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c index 8002d61a0a..31643c8ed0 100644 --- a/src/nm-ip6-config.c +++ b/src/nm-ip6-config.c @@ -104,7 +104,7 @@ nm_ip6_config_get_ifindex (const NMIP6Config *config) return NM_IP6_CONFIG_GET_PRIVATE (config)->ifindex; } -/******************************************************************/ +/*****************************************************************************/ /** * nm_ip6_config_capture_resolv_conf(): @@ -639,7 +639,7 @@ nm_ip6_config_create_setting (const NMIP6Config *config) return NM_SETTING (s_ip6); } -/******************************************************************/ +/*****************************************************************************/ void nm_ip6_config_merge (NMIP6Config *dst, const NMIP6Config *src, NMIPConfigMergeFlags merge_flags) @@ -730,7 +730,7 @@ nm_ip6_config_destination_is_direct (const NMIP6Config *config, const struct in6 return FALSE; } -/*******************************************************************************/ +/*****************************************************************************/ static int _addresses_get_index (const NMIP6Config *self, const NMPlatformIP6Address *addr) @@ -822,7 +822,7 @@ _dns_options_get_index (const NMIP6Config *self, const char *option) return -1; } -/*******************************************************************************/ +/*****************************************************************************/ /** * nm_ip6_config_subtract: @@ -1222,7 +1222,7 @@ nm_ip6_config_dump (const NMIP6Config *config, const char *detail) g_message (" n-dflt: %d", nm_ip6_config_get_never_default (config)); } -/******************************************************************/ +/*****************************************************************************/ void nm_ip6_config_set_never_default (NMIP6Config *config, gboolean never_default) @@ -1273,7 +1273,7 @@ nm_ip6_config_get_route_metric (const NMIP6Config *config) return priv->route_metric; } -/******************************************************************/ +/*****************************************************************************/ void nm_ip6_config_reset_addresses (NMIP6Config *config) @@ -1443,7 +1443,7 @@ nm_ip6_config_has_any_dad_pending (const NMIP6Config *self, return FALSE; } -/******************************************************************/ +/*****************************************************************************/ void nm_ip6_config_reset_routes (NMIP6Config *config) @@ -1586,7 +1586,7 @@ nm_ip6_config_get_subnet_for_host (const NMIP6Config *config, const struct in6_a } -/******************************************************************/ +/*****************************************************************************/ void nm_ip6_config_reset_nameservers (NMIP6Config *config) @@ -1642,7 +1642,7 @@ nm_ip6_config_get_nameserver (const NMIP6Config *config, guint i) return &g_array_index (priv->nameservers, struct in6_addr, i); } -/******************************************************************/ +/*****************************************************************************/ void nm_ip6_config_reset_domains (NMIP6Config *config) @@ -1699,7 +1699,7 @@ nm_ip6_config_get_domain (const NMIP6Config *config, guint i) return g_ptr_array_index (priv->domains, i); } -/******************************************************************/ +/*****************************************************************************/ void nm_ip6_config_reset_searches (NMIP6Config *config) @@ -1771,7 +1771,7 @@ nm_ip6_config_get_search (const NMIP6Config *config, guint i) return g_ptr_array_index (priv->searches, i); } -/******************************************************************/ +/*****************************************************************************/ void nm_ip6_config_reset_dns_options (NMIP6Config *config) @@ -1828,7 +1828,7 @@ nm_ip6_config_get_dns_option (const NMIP6Config *config, guint i) return g_ptr_array_index (priv->dns_options, i); } -/******************************************************************/ +/*****************************************************************************/ void nm_ip6_config_set_dns_priority (NMIP6Config *config, gint priority) @@ -1849,7 +1849,7 @@ nm_ip6_config_get_dns_priority (const NMIP6Config *config) return priv->dns_priority; } -/******************************************************************/ +/*****************************************************************************/ void nm_ip6_config_set_mss (NMIP6Config *config, guint32 mss) @@ -1867,7 +1867,7 @@ nm_ip6_config_get_mss (const NMIP6Config *config) return priv->mss; } -/******************************************************************/ +/*****************************************************************************/ static inline void hash_u32 (GChecksum *sum, guint32 n) @@ -1972,7 +1972,7 @@ nm_ip6_config_equal (const NMIP6Config *a, const NMIP6Config *b) return equal; } -/******************************************************************/ +/*****************************************************************************/ static void nm_ip6_config_init (NMIP6Config *config) diff --git a/src/nm-ip6-config.h b/src/nm-ip6-config.h index c3f8d9f879..bdcc277df2 100644 --- a/src/nm-ip6-config.h +++ b/src/nm-ip6-config.h @@ -142,7 +142,7 @@ guint32 nm_ip6_config_get_mss (const NMIP6Config *config); void nm_ip6_config_hash (const NMIP6Config *config, GChecksum *sum, gboolean dns_only); gboolean nm_ip6_config_equal (const NMIP6Config *a, const NMIP6Config *b); -/******************************************************/ +/*****************************************************************************/ /* Testing-only functions */ gboolean nm_ip6_config_capture_resolv_conf (GArray *nameservers, diff --git a/src/nm-logging.c b/src/nm-logging.c index 6ecc160625..1dc9237ae2 100644 --- a/src/nm-logging.c +++ b/src/nm-logging.c @@ -159,11 +159,11 @@ G_STATIC_ASSERT (sizeof (NMLogDomain) >= sizeof (guint64)); #define LOGD_DHCP_STRING "DHCP" #define LOGD_IP_STRING "IP" -/************************************************************************/ +/*****************************************************************************/ static char *_domains_to_string (gboolean include_level_override); -/************************************************************************/ +/*****************************************************************************/ static gboolean match_log_level (const char *level, @@ -617,7 +617,7 @@ _nm_log_impl (const char *file, g_free (msg); } -/************************************************************************/ +/*****************************************************************************/ static void nm_log_handler (const gchar *log_domain, diff --git a/src/nm-manager.c b/src/nm-manager.c index 9d536e358b..4c542a53d6 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -48,7 +48,7 @@ #include "nm-connectivity.h" #include "nm-policy.h" #include "nm-session-monitor.h" -#include "nm-activation-request.h" +#include "nm-act-request.h" #include "nm-core-internal.h" #include "nm-config.h" #include "nm-audit-manager.h" @@ -210,7 +210,7 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMManager, NM_DEFINE_SINGLETON_INSTANCE (NMManager); -/************************************************************************/ +/*****************************************************************************/ #define _NMLOG_PREFIX_NAME "manager" #define _NMLOG(level, domain, ...) \ @@ -232,7 +232,7 @@ NM_DEFINE_SINGLETON_INSTANCE (NMManager); } \ } G_STMT_END -/************************************************************************/ +/*****************************************************************************/ static void active_connection_state_changed (NMActiveConnection *active, GParamSpec *pspec, @@ -460,7 +460,7 @@ active_connection_get_by_path (NMManager *manager, const char *path) return NULL; } -/************************************************************************/ +/*****************************************************************************/ static void _config_changed_cb (NMConfig *config, NMConfigData *config_data, NMConfigChangeFlags changes, NMConfigData *old_data, NMManager *self) @@ -573,7 +573,7 @@ impl_manager_reload (NMManager *self, nm_auth_chain_add_call (chain, NM_AUTH_PERMISSION_RELOAD, TRUE); } -/************************************************************************/ +/*****************************************************************************/ NMDevice * nm_manager_get_device_by_path (NMManager *manager, const char *path) @@ -1017,7 +1017,7 @@ nm_manager_get_state (NMManager *manager) return NM_MANAGER_GET_PRIVATE (manager)->state; } -/***************************/ +/*****************************************************************************/ static NMDevice * find_parent_device_for_connection (NMManager *self, NMConnection *connection, NMDeviceFactory *cached_factory) @@ -1363,9 +1363,9 @@ system_hostname_changed_cb (NMSettings *settings, nm_dhcp_manager_set_default_hostname (nm_dhcp_manager_get (), priv->hostname); } -/*******************************************************************/ +/*****************************************************************************/ /* General NMManager stuff */ -/*******************************************************************/ +/*****************************************************************************/ static gboolean radio_enabled_for_rstate (RadioState *rstate, gboolean check_changeable) @@ -2025,7 +2025,7 @@ add_device (NMManager *self, NMDevice *device, GError **error) return TRUE; } -/*******************************************************************/ +/*****************************************************************************/ static void factory_device_added_cb (NMDeviceFactory *factory, @@ -2079,7 +2079,7 @@ _register_device_factory (NMDeviceFactory *factory, gpointer user_data) self); } -/*******************************************************************/ +/*****************************************************************************/ static void platform_link_added (NMManager *self, @@ -3450,7 +3450,7 @@ error: return NULL; } -/***********************************************************************/ +/*****************************************************************************/ static void _activation_auth_done (NMActiveConnection *active, @@ -3584,7 +3584,7 @@ error: g_dbus_method_invocation_take_error (context, error); } -/***********************************************************************/ +/*****************************************************************************/ typedef struct { NMManager *manager; @@ -3796,7 +3796,7 @@ error: g_dbus_method_invocation_take_error (context, error); } -/***********************************************************************/ +/*****************************************************************************/ gboolean nm_manager_deactivate_connection (NMManager *manager, @@ -5171,7 +5171,7 @@ prop_filter (GDBusConnection *connection, return NULL; } -/******************************************************************************/ +/*****************************************************************************/ static int _set_prop_filter_free2 (gpointer user_data) @@ -5218,7 +5218,7 @@ _set_prop_filter (NMManager *self, GDBusConnection *connection) } } -/******************************************************************************/ +/*****************************************************************************/ static NMCheckpointManager * _checkpoint_mgr_get (NMManager *self, gboolean create_as_needed) @@ -5386,7 +5386,7 @@ impl_manager_checkpoint_rollback (NMManager *self, nm_auth_chain_add_call (chain, NM_AUTH_PERMISSION_CHECKPOINT_ROLLBACK, TRUE); } -/******************************************************************************/ +/*****************************************************************************/ static void auth_mgr_changed (NMAuthManager *auth_manager, gpointer user_data) @@ -5529,7 +5529,7 @@ dbus_connection_changed_cb (NMBusManager *dbus_mgr, _set_prop_filter (NM_MANAGER (user_data), connection); } -/**********************************************************************/ +/*****************************************************************************/ void nm_manager_set_capability (NMManager *self, @@ -5562,7 +5562,7 @@ nm_manager_set_capability (NMManager *self, _notify (self, PROP_CAPABILITIES); } -/**********************************************************************/ +/*****************************************************************************/ NM_DEFINE_SINGLETON_REGISTER (NMManager); @@ -5613,6 +5613,9 @@ constructed (GObject *object) _set_prop_filter (self, nm_bus_manager_get_connection (priv->dbus_mgr)); priv->settings = nm_settings_new (); + + nm_exported_object_export (NM_EXPORTED_OBJECT (priv->settings)); + g_signal_connect (priv->settings, "notify::" NM_SETTINGS_STARTUP_COMPLETE, G_CALLBACK (settings_startup_complete_changed), self); g_signal_connect (priv->settings, "notify::" NM_SETTINGS_UNMANAGED_SPECS, diff --git a/src/nm-multi-index.c b/src/nm-multi-index.c index 6ae54a989b..6ae4c21fab 100644 --- a/src/nm-multi-index.c +++ b/src/nm-multi-index.c @@ -42,7 +42,7 @@ typedef struct { GHashTable *index; } ValuesData; -/******************************************************************************************/ +/*****************************************************************************/ static void _values_data_destroy (ValuesData *values_data) @@ -99,7 +99,7 @@ _values_data_get_data (ValuesData *values_data, NM_SET_OUT (out_data, values_data->values); } -/******************************************************************************************/ +/*****************************************************************************/ /** * nm_multi_index_lookup(): @@ -237,7 +237,7 @@ nm_multi_index_iter_next (NMMultiIndexIter *iter, return FALSE; } -/******************************************************************************************/ +/*****************************************************************************/ void nm_multi_index_id_iter_init (NMMultiIndexIdIter *iter, @@ -283,7 +283,7 @@ nm_multi_index_id_iter_next (NMMultiIndexIdIter *iter, } } -/******************************************************************************************/ +/*****************************************************************************/ static gboolean _do_add (NMMultiIndex *index, @@ -430,7 +430,7 @@ nm_multi_index_move (NMMultiIndex *index, } } -/******************************************************************************************/ +/*****************************************************************************/ guint nm_multi_index_get_num_groups (const NMMultiIndex *index) diff --git a/src/nm-policy.c b/src/nm-policy.c index 682857d3de..ffe9203e7b 100644 --- a/src/nm-policy.c +++ b/src/nm-policy.c @@ -21,14 +21,15 @@ #include "nm-default.h" +#include "nm-policy.h" + #include <string.h> #include <unistd.h> #include <errno.h> #include <netdb.h> -#include "nm-policy.h" #include "NetworkManagerUtils.h" -#include "nm-activation-request.h" +#include "nm-act-request.h" #include "nm-device.h" #include "nm-default-route-manager.h" #include "nm-setting-ip4-config.h" @@ -47,19 +48,18 @@ #include "nm-dhcp4-config.h" #include "nm-dhcp6-config.h" -#define _NMLOG_PREFIX_NAME "policy" -#define _NMLOG(level, domain, ...) \ - G_STMT_START { \ - nm_log ((level), (domain), \ - "%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ - _NMLOG_PREFIX_NAME": " \ - _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ - } G_STMT_END +/*****************************************************************************/ -typedef struct _NMPolicyPrivate NMPolicyPrivate; +NM_GOBJECT_PROPERTIES_DEFINE (NMPolicy, + PROP_MANAGER, + PROP_SETTINGS, + PROP_DEFAULT_IP4_DEVICE, + PROP_DEFAULT_IP6_DEVICE, + PROP_ACTIVATING_IP4_DEVICE, + PROP_ACTIVATING_IP6_DEVICE, +); -struct _NMPolicyPrivate { - NMPolicy *self; +typedef struct { NMManager *manager; NMFirewallManager *firewall_manager; GSList *pending_activation_checks; @@ -88,28 +88,50 @@ struct _NMPolicyPrivate { char *orig_hostname; /* hostname at NM start time */ char *cur_hostname; /* hostname we want to assign */ gboolean hostname_changed; /* TRUE if NM ever set the hostname */ +} NMPolicyPrivate; + +struct _NMPolicy { + GObject parent; + NMPolicyPrivate _priv; }; -static NMPolicyPrivate * -NM_POLICY_GET_PRIVATE(NMPolicy *self) +struct _NMPolicyClass { + GObjectClass parent; +}; + +G_DEFINE_TYPE (NMPolicy, nm_policy, G_TYPE_OBJECT) + +#define NM_POLICY_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMPolicy, NM_IS_POLICY) + +static NMPolicy * +_PRIV_TO_SELF (NMPolicyPrivate *priv) { + NMPolicy *self; + + nm_assert (priv); + + self = (NMPolicy *) (((char *) priv) - G_STRUCT_OFFSET (NMPolicy, _priv)); + nm_assert (NM_IS_POLICY (self)); - return self->priv; + return self; } -G_DEFINE_TYPE (NMPolicy, nm_policy, G_TYPE_OBJECT) +/*****************************************************************************/ -NM_GOBJECT_PROPERTIES_DEFINE (NMPolicy, - PROP_MANAGER, - PROP_SETTINGS, - PROP_DEFAULT_IP4_DEVICE, - PROP_DEFAULT_IP6_DEVICE, - PROP_ACTIVATING_IP4_DEVICE, - PROP_ACTIVATING_IP6_DEVICE, -); +#define _NMLOG_PREFIX_NAME "policy" +#define _NMLOG(level, domain, ...) \ + G_STMT_START { \ + nm_log ((level), (domain), \ + "%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ + _NMLOG_PREFIX_NAME": " \ + _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ + } G_STMT_END + +/*****************************************************************************/ static void schedule_activate_all (NMPolicy *self); +/*****************************************************************************/ static NMDevice * get_best_ip4_device (NMPolicy *self, gboolean fully_activated) @@ -852,7 +874,7 @@ static void hostname_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); update_system_hostname (self, NULL, NULL); } @@ -929,7 +951,7 @@ static void sleeping_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); gboolean sleeping = FALSE, enabled = FALSE; g_object_get (G_OBJECT (manager), NM_MANAGER_SLEEPING, &sleeping, NULL); @@ -1162,7 +1184,7 @@ device_state_changed (NMDevice *device, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); NMSettingsConnection *connection = nm_device_get_settings_connection (device); @@ -1308,7 +1330,7 @@ device_ip4_config_changed (NMDevice *device, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); const char *ip_iface = nm_device_get_ip_iface (device); nm_dns_manager_begin_updates (priv->dns_manager, __func__); @@ -1343,7 +1365,7 @@ device_ip6_config_changed (NMDevice *device, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); const char *ip_iface = nm_device_get_ip_iface (device); nm_dns_manager_begin_updates (priv->dns_manager, __func__); @@ -1377,7 +1399,7 @@ device_autoconnect_changed (NMDevice *device, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); if (nm_device_autoconnect_allowed (device)) schedule_activate_check (self, device); @@ -1387,7 +1409,7 @@ static void device_recheck_auto_activate (NMDevice *device, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); schedule_activate_check (self, device); } @@ -1417,7 +1439,7 @@ static void device_added (NMManager *manager, NMDevice *device, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); g_return_if_fail (NM_IS_POLICY (self)); @@ -1433,7 +1455,7 @@ static void device_removed (NMManager *manager, NMDevice *device, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); /* Clear any idle callbacks for this device */ clear_pending_activate_check (self, device); @@ -1446,7 +1468,7 @@ device_removed (NMManager *manager, NMDevice *device, gpointer user_data) */ } -/**************************************************************************/ +/*****************************************************************************/ static void vpn_connection_activated (NMPolicy *self, NMVpnConnection *vpn) @@ -1560,7 +1582,7 @@ active_connection_added (NMManager *manager, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); if (NM_IS_VPN_CONNECTION (active)) { g_signal_connect (active, NM_VPN_CONNECTION_INTERNAL_STATE_CHANGED, @@ -1582,7 +1604,7 @@ active_connection_removed (NMManager *manager, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); g_signal_handlers_disconnect_by_func (active, vpn_connection_state_changed, @@ -1595,7 +1617,7 @@ active_connection_removed (NMManager *manager, self); } -/**************************************************************************/ +/*****************************************************************************/ static gboolean schedule_activate_all_cb (gpointer user_data) @@ -1629,7 +1651,7 @@ connection_added (NMSettings *settings, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); schedule_activate_all (self); } @@ -1687,7 +1709,7 @@ connection_updated (NMSettings *settings, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); const GSList *iter; NMDevice *device = NULL; @@ -1755,7 +1777,7 @@ connection_visibility_changed (NMSettings *settings, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); if (nm_settings_connection_is_visible (connection)) schedule_activate_all (self); @@ -1769,7 +1791,7 @@ secret_agent_registered (NMSettings *settings, gpointer user_data) { NMPolicyPrivate *priv = user_data; - NMPolicy *self = priv->self; + NMPolicy *self = _PRIV_TO_SELF (priv); /* The registered secret agent may provide some missing secrets. Thus we * reset retries count here and schedule activation, so that the @@ -1860,10 +1882,7 @@ set_property (GObject *object, guint prop_id, static void nm_policy_init (NMPolicy *self) { - NMPolicyPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_POLICY, NMPolicyPrivate); - - self->priv = priv; - priv->self = self; + NMPolicyPrivate *priv = NM_POLICY_GET_PRIVATE (self); priv->devices = g_hash_table_new (NULL, NULL); } @@ -2000,8 +2019,6 @@ finalize (GObject *object) g_hash_table_unref (priv->devices); G_OBJECT_CLASS (nm_policy_parent_class)->finalize (object); - - priv->self = NULL; } static void @@ -2009,8 +2026,6 @@ nm_policy_class_init (NMPolicyClass *policy_class) { GObjectClass *object_class = G_OBJECT_CLASS (policy_class); - g_type_class_add_private (policy_class, sizeof (NMPolicyPrivate)); - object_class->get_property = get_property; object_class->set_property = set_property; object_class->constructed = constructed; @@ -2049,5 +2064,6 @@ nm_policy_class_init (NMPolicyClass *policy_class) NM_TYPE_DEVICE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); } diff --git a/src/nm-policy.h b/src/nm-policy.h index ce900ba641..64cac4fe70 100644 --- a/src/nm-policy.h +++ b/src/nm-policy.h @@ -36,17 +36,7 @@ #define NM_POLICY_ACTIVATING_IP4_DEVICE "activating-ip4-device" #define NM_POLICY_ACTIVATING_IP6_DEVICE "activating-ip6-device" -struct _NMPolicyPrivate; - -struct _NMPolicy { - GObject parent; - struct _NMPolicyPrivate *priv; -}; - -typedef struct { - GObjectClass parent; - -} NMPolicyClass; +typedef struct _NMPolicyClass NMPolicyClass; GType nm_policy_get_type (void); diff --git a/src/nm-rfkill-manager.c b/src/nm-rfkill-manager.c index 453a3b9bbb..14346c32a2 100644 --- a/src/nm-rfkill-manager.c +++ b/src/nm-rfkill-manager.c @@ -20,10 +20,19 @@ #include "nm-default.h" +#include "nm-rfkill-manager.h" + #include <string.h> #include <gudev/gudev.h> -#include "nm-rfkill-manager.h" +/*****************************************************************************/ + +enum { + RFKILL_CHANGED, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { GUdevClient *client; @@ -31,21 +40,22 @@ typedef struct { /* Authoritative rfkill state (RFKILL_* enum) */ RfKillState rfkill_states[RFKILL_TYPE_MAX]; GSList *killswitches; - } NMRfkillManagerPrivate; -#define NM_RFKILL_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_RFKILL_MANAGER, NMRfkillManagerPrivate)) - -G_DEFINE_TYPE (NMRfkillManager, nm_rfkill_manager, G_TYPE_OBJECT) - -enum { - RFKILL_CHANGED, +struct _NMRfkillManager { + GObject parent; + NMRfkillManagerPrivate _priv; +}; - LAST_SIGNAL +struct _NMRfkillManagerClass { + GObjectClass parent; }; -static guint signals[LAST_SIGNAL] = { 0 }; +G_DEFINE_TYPE (NMRfkillManager, nm_rfkill_manager, G_TYPE_OBJECT) + +#define NM_RFKILL_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMRfkillManager, NM_IS_RFKILL_MANAGER) +/*****************************************************************************/ typedef struct { char *name; @@ -149,12 +159,6 @@ killswitch_destroy (Killswitch *ks) g_free (ks); } -NMRfkillManager * -nm_rfkill_manager_new (void) -{ - return NM_RFKILL_MANAGER (g_object_new (NM_TYPE_RFKILL_MANAGER, NULL)); -} - static RfKillState sysfs_state_to_nm_state (gint sysfs_state) { @@ -358,6 +362,8 @@ handle_uevent (GUdevClient *client, recheck_killswitches (self); } +/*****************************************************************************/ + static void nm_rfkill_manager_init (NMRfkillManager *self) { @@ -382,6 +388,12 @@ nm_rfkill_manager_init (NMRfkillManager *self) recheck_killswitches (self); } +NMRfkillManager * +nm_rfkill_manager_new (void) +{ + return NM_RFKILL_MANAGER (g_object_new (NM_TYPE_RFKILL_MANAGER, NULL)); +} + static void dispose (GObject *object) { @@ -403,17 +415,13 @@ nm_rfkill_manager_class_init (NMRfkillManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMRfkillManagerPrivate)); - - /* virtual methods */ object_class->dispose = dispose; - /* Signals */ signals[RFKILL_CHANGED] = - g_signal_new (NM_RFKILL_MANAGER_SIGNAL_RFKILL_CHANGED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMRfkillManagerClass, rfkill_changed), - NULL, NULL, NULL, - G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT); + g_signal_new (NM_RFKILL_MANAGER_SIGNAL_RFKILL_CHANGED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT); } diff --git a/src/nm-rfkill-manager.h b/src/nm-rfkill-manager.h index 3aca8f50b9..490c1ca28f 100644 --- a/src/nm-rfkill-manager.h +++ b/src/nm-rfkill-manager.h @@ -19,10 +19,8 @@ * Copyright (C) 2007 - 2013 Red Hat, Inc. */ -#ifndef __NETWORKMANAGER_RFKILL_MANAGER_H__ -#define __NETWORKMANAGER_RFKILL_MANAGER_H__ - -#define NM_RFKILL_MANAGER_SIGNAL_RFKILL_CHANGED "rfkill-changed" +#ifndef __NM_RFKILL_MANAGER_H__ +#define __NM_RFKILL_MANAGER_H__ typedef enum { /*< skip >*/ RFKILL_UNBLOCKED = 0, @@ -42,7 +40,6 @@ typedef enum { /*< skip >*/ RFKILL_TYPE_MAX = RFKILL_TYPE_UNKNOWN } RfKillType; - #define NM_TYPE_RFKILL_MANAGER (nm_rfkill_manager_get_type ()) #define NM_RFKILL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_RFKILL_MANAGER, NMRfkillManager)) #define NM_RFKILL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_RFKILL_MANAGER, NMRfkillManagerClass)) @@ -50,16 +47,9 @@ typedef enum { /*< skip >*/ #define NM_IS_RFKILL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_RFKILL_MANAGER)) #define NM_RFKILL_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_RFKILL_MANAGER, NMRfkillManagerClass)) -struct _NMRfkillManager { - GObject parent; -}; - -typedef struct { - GObjectClass parent; +#define NM_RFKILL_MANAGER_SIGNAL_RFKILL_CHANGED "rfkill-changed" - /* signals */ - void (*rfkill_changed) (NMRfkillManager *manager, RfKillType rtype, RfKillState state); -} NMRfkillManagerClass; +typedef struct _NMRfkillManagerClass NMRfkillManagerClass; GType nm_rfkill_manager_get_type (void); @@ -67,5 +57,4 @@ NMRfkillManager *nm_rfkill_manager_new (void); RfKillState nm_rfkill_manager_get_rfkill_state (NMRfkillManager *manager, RfKillType rtype); -#endif /* NM_RFKILL_MANAGER_H */ - +#endif /* __NM_RFKILL_MANAGER_H__ */ diff --git a/src/nm-route-manager.c b/src/nm-route-manager.c index 95113f8c84..8c97f911d0 100644 --- a/src/nm-route-manager.c +++ b/src/nm-route-manager.c @@ -20,9 +20,10 @@ #include "nm-default.h" +#include "nm-route-manager.h" + #include <string.h> -#include "nm-route-manager.h" #include "nm-platform.h" #include "nmp-object.h" #include "nm-core-internal.h" @@ -34,6 +35,8 @@ #define IP4_DEVICE_ROUTES_GC_INTERVAL_SEC (IP4_DEVICE_ROUTES_WAIT_TIME_NS * 2) +/*****************************************************************************/ + typedef struct { guint len; NMPlatformIPXRoute *entries[1]; @@ -58,6 +61,12 @@ typedef struct { NMPObject *obj; } IP4DeviceRoutePurgeEntry; +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_PLATFORM, +); + typedef struct { NMPlatform *platform; @@ -69,17 +78,24 @@ typedef struct { } ip4_device_routes; } NMRouteManagerPrivate; -#define NM_ROUTE_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_ROUTE_MANAGER, NMRouteManagerPrivate)) +struct _NMRouteManager { + GObject parent; + NMRouteManagerPrivate _priv; +}; + +struct _NMRouteManagerClass { + GObjectClass parent; +}; G_DEFINE_TYPE (NMRouteManager, nm_route_manager, G_TYPE_OBJECT); -NM_GOBJECT_PROPERTIES_DEFINE_BASE ( - PROP_PLATFORM, -); +#define NM_ROUTE_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMRouteManager, NM_IS_ROUTE_MANAGER) + +/*****************************************************************************/ NM_DEFINE_SINGLETON_GETTER (NMRouteManager, nm_route_manager_get, NM_TYPE_ROUTE_MANAGER); -/*********************************************************************************************/ +/*****************************************************************************/ typedef struct { const NMPlatformVTableRoute *vt; @@ -112,7 +128,7 @@ static const VTableIP vtable_v4, vtable_v6; return 1; \ } G_STMT_END -/*********************************************************************************************/ +/*****************************************************************************/ #define _NMLOG_PREFIX_NAME "route-mgr" #undef _NMLOG_ENABLED @@ -144,11 +160,11 @@ static const VTableIP vtable_v4, vtable_v6; } \ } G_STMT_END -/*********************************************************************************************/ +/*****************************************************************************/ static gboolean _ip4_device_routes_cancel (NMRouteManager *self); -/*********************************************************************************************/ +/*****************************************************************************/ #if NM_MORE_ASSERTS && !defined (G_DISABLE_ASSERT) inline static void @@ -202,7 +218,7 @@ ASSERT_route_index_valid (const VTableIP *vtable, const GArray *entries, const R #define ASSERT_route_index_valid(vtable, entries, index, unique_ifindexes) G_STMT_START { (void) 0; } G_STMT_END #endif -/*********************************************************************************************/ +/*****************************************************************************/ static int _v4_route_dest_cmp (const NMPlatformIP4Route *r1, const NMPlatformIP4Route *r2) @@ -254,7 +270,7 @@ _v6_route_id_cmp (const NMPlatformIP6Route *r1, const NMPlatformIP6Route *r2) return 0; } -/*********************************************************************************************/ +/*****************************************************************************/ static int _route_index_create_sort (const NMPlatformIPXRoute **p1, const NMPlatformIPXRoute ** p2, const VTableIP *vtable) @@ -340,7 +356,7 @@ _route_index_reverse_idx (const VTableIP *vtable, const RouteIndex *index, guint return offset; } -/*********************************************************************************************/ +/*****************************************************************************/ static gboolean _route_equals_ignoring_ifindex (const VTableIP *vtable, const NMPlatformIPXRoute *r1, const NMPlatformIPXRoute *r2, gint64 r2_metric) @@ -431,7 +447,7 @@ _sort_indexes_cmp (guint *a, guint *b) g_return_val_if_reached (0); } -/*********************************************************************************************/ +/*****************************************************************************/ static gboolean _vx_route_sync (const VTableIP *vtable, NMRouteManager *self, int ifindex, const GArray *known_routes, gboolean ignore_kernel_routes, gboolean full_sync) @@ -951,7 +967,7 @@ nm_route_manager_route_flush (NMRouteManager *self, int ifindex) return success; } -/*********************************************************************************************/ +/*****************************************************************************/ static gboolean _ip4_device_routes_entry_expired (const IP4DeviceRoutePurgeEntry *entry, gint64 now) @@ -1126,7 +1142,7 @@ nm_route_manager_ip4_route_register_device_route_purge_list (NMRouteManager *sel } } -/*********************************************************************************************/ +/*****************************************************************************/ static const VTableIP vtable_v4 = { .vt = &nm_platform_vtable_route_v4, @@ -1140,7 +1156,7 @@ static const VTableIP vtable_v6 = { .route_id_cmp = (int (*) (const NMPlatformIPXRoute *, const NMPlatformIPXRoute *)) _v6_route_id_cmp, }; -/*********************************************************************************************/ +/*****************************************************************************/ static void set_property (GObject *object, guint prop_id, @@ -1163,6 +1179,8 @@ set_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + static void nm_route_manager_init (NMRouteManager *self) { @@ -1194,7 +1212,7 @@ static void dispose (GObject *object) { NMRouteManager *self = NM_ROUTE_MANAGER (object); - NMRouteManagerPrivate *priv = NM_ROUTE_MANAGER_GET_PRIVATE (object); + NMRouteManagerPrivate *priv = NM_ROUTE_MANAGER_GET_PRIVATE (self); g_hash_table_remove_all (priv->ip4_device_routes.entries); _ip4_device_routes_cancel (self); @@ -1205,7 +1223,7 @@ dispose (GObject *object) static void finalize (GObject *object) { - NMRouteManagerPrivate *priv = NM_ROUTE_MANAGER_GET_PRIVATE (object); + NMRouteManagerPrivate *priv = NM_ROUTE_MANAGER_GET_PRIVATE ((NMRouteManager *) object); g_array_free (priv->ip4_routes.entries, TRUE); g_array_free (priv->ip6_routes.entries, TRUE); @@ -1228,9 +1246,6 @@ nm_route_manager_class_init (NMRouteManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMRouteManagerPrivate)); - - /* virtual methods */ object_class->set_property = set_property; object_class->dispose = dispose; object_class->finalize = finalize; diff --git a/src/nm-route-manager.h b/src/nm-route-manager.h index 8e2746d93e..d12f025603 100644 --- a/src/nm-route-manager.h +++ b/src/nm-route-manager.h @@ -18,8 +18,8 @@ * Copyright (C) 2015 Red Hat, Inc. */ -#ifndef __NETWORKMANAGER_ROUTE_MANAGER_H__ -#define __NETWORKMANAGER_ROUTE_MANAGER_H__ +#ifndef __NM_ROUTE_MANAGER_H__ +#define __NM_ROUTE_MANAGER_H__ #define NM_TYPE_ROUTE_MANAGER (nm_route_manager_get_type ()) #define NM_ROUTE_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_ROUTE_MANAGER, NMRouteManager)) @@ -30,13 +30,7 @@ #define NM_ROUTE_MANAGER_PLATFORM "platform" -struct _NMRouteManager { - GObject parent; -}; - -typedef struct { - GObjectClass parent; -} NMRouteManagerClass; +typedef struct _NMRouteManagerClass NMRouteManagerClass; GType nm_route_manager_get_type (void); @@ -49,4 +43,4 @@ void nm_route_manager_ip4_route_register_device_route_purge_list (NMRouteManager NMRouteManager *nm_route_manager_get (void); NMRouteManager *nm_route_manager_new (NMPlatform *platform); -#endif /* NM_ROUTE_MANAGER_H */ +#endif /* __NM_ROUTE_MANAGER_H__ */ diff --git a/src/nm-session-monitor.c b/src/nm-session-monitor.c index 279a888672..8f2955daa0 100644 --- a/src/nm-session-monitor.c +++ b/src/nm-session-monitor.c @@ -21,29 +21,30 @@ */ #include "nm-default.h" +#include "nm-session-monitor.h" + #include <pwd.h> #include <errno.h> #include <string.h> #include <sys/stat.h> -#include "nm-session-monitor.h" -#include "NetworkManagerUtils.h" - #ifdef SESSION_TRACKING_SYSTEMD #include <systemd/sd-login.h> #endif -/********************************************************************/ +#include "NetworkManagerUtils.h" + +/*****************************************************************************/ + +enum { + CHANGED, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = { 0 }; -/* <internal> - * SECTION:nm-session-monitor - * @title: NMSessionMonitor - * @short_description: Monitor sessions - * - * The #NMSessionMonitor class is a utility class to track and monitor sessions. - */ struct _NMSessionMonitor { - GObject parent_instance; + GObject parent; #ifdef SESSION_TRACKING_SYSTEMD struct { @@ -62,21 +63,12 @@ struct _NMSessionMonitor { }; struct _NMSessionMonitorClass { - GObjectClass parent_class; - - void (*changed) (NMSessionMonitor *monitor); + GObjectClass parent; }; G_DEFINE_TYPE (NMSessionMonitor, nm_session_monitor, G_TYPE_OBJECT); -enum { - CHANGED, - LAST_SIGNAL, -}; - -static guint signals[LAST_SIGNAL] = { 0 }; - -/********************************************************************/ +/*****************************************************************************/ #ifdef SESSION_TRACKING_SYSTEMD static gboolean @@ -136,7 +128,7 @@ st_sd_finalize (NMSessionMonitor *monitor) } #endif /* SESSION_TRACKING_SYSTEMD */ -/********************************************************************/ +/*****************************************************************************/ #ifdef SESSION_TRACKING_CONSOLEKIT typedef struct { @@ -274,7 +266,7 @@ ck_finalize (NMSessionMonitor *monitor) } #endif /* SESSION_TRACKING_CONSOLEKIT */ -/********************************************************************/ +/*****************************************************************************/ NM_DEFINE_SINGLETON_GETTER (NMSessionMonitor, nm_session_monitor_get, NM_TYPE_SESSION_MONITOR); @@ -356,7 +348,7 @@ nm_session_monitor_session_exists (NMSessionMonitor *self, return FALSE; } -/********************************************************************/ +/*****************************************************************************/ static void nm_session_monitor_init (NMSessionMonitor *monitor) @@ -371,7 +363,7 @@ nm_session_monitor_init (NMSessionMonitor *monitor) } static void -nm_session_monitor_finalize (GObject *object) +finalize (GObject *object) { #ifdef SESSION_TRACKING_SYSTEMD st_sd_finalize (NM_SESSION_MONITOR (object)); @@ -381,8 +373,7 @@ nm_session_monitor_finalize (GObject *object) ck_finalize (NM_SESSION_MONITOR (object)); #endif - if (G_OBJECT_CLASS (nm_session_monitor_parent_class)->finalize != NULL) - G_OBJECT_CLASS (nm_session_monitor_parent_class)->finalize (object); + G_OBJECT_CLASS (nm_session_monitor_parent_class)->finalize (object); } static void @@ -390,7 +381,7 @@ nm_session_monitor_class_init (NMSessionMonitorClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = nm_session_monitor_finalize; + gobject_class->finalize = finalize; /** * NMSessionMonitor::changed: @@ -399,12 +390,10 @@ nm_session_monitor_class_init (NMSessionMonitorClass *klass) * Emitted when something changes. */ signals[CHANGED] = g_signal_new (NM_SESSION_MONITOR_CHANGED, - NM_TYPE_SESSION_MONITOR, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMSessionMonitorClass, changed), - NULL, /* accumulator */ - NULL, /* accumulator data */ - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, - 0); + NM_TYPE_SESSION_MONITOR, + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); } diff --git a/src/nm-session-monitor.h b/src/nm-session-monitor.h index 3751d7db4c..d3d10e98b2 100644 --- a/src/nm-session-monitor.h +++ b/src/nm-session-monitor.h @@ -30,19 +30,16 @@ #define NM_SESSION_MONITOR_CHANGED "changed" -typedef struct _NMSessionMonitorClass NMSessionMonitorClass; +typedef struct _NMSessionMonitorClass NMSessionMonitorClass; -typedef void (*NMSessionCallback) (NMSessionMonitor *monitor, gpointer user_data); - -GType nm_session_monitor_get_type (void) G_GNUC_CONST; +GType nm_session_monitor_get_type (void) G_GNUC_CONST; NMSessionMonitor *nm_session_monitor_get (void); -gboolean nm_session_monitor_uid_to_user (uid_t uid, const char **out_user); -gboolean nm_session_monitor_user_to_uid (const char *user, uid_t *out_uid); -gboolean nm_session_monitor_session_exists (NMSessionMonitor *self, - uid_t uid, - gboolean active); +gboolean nm_session_monitor_uid_to_user (uid_t uid, const char **out_user); +gboolean nm_session_monitor_user_to_uid (const char *user, uid_t *out_uid); +gboolean nm_session_monitor_session_exists (NMSessionMonitor *self, + uid_t uid, + gboolean active); #endif /* __NETWORKMANAGER_SESSION_MONITOR_H__ */ - diff --git a/src/nm-sleep-monitor.c b/src/nm-sleep-monitor.c index 13ce1be000..ccb99e76ed 100644 --- a/src/nm-sleep-monitor.c +++ b/src/nm-sleep-monitor.c @@ -64,8 +64,17 @@ #endif +/*****************************************************************************/ + +enum { + SLEEPING, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = {0}; + struct _NMSleepMonitor { - GObject parent_instance; + GObject parent; GDBusProxy *proxy; @@ -81,19 +90,11 @@ struct _NMSleepMonitor { }; struct _NMSleepMonitorClass { - GObjectClass parent_class; + GObjectClass parent; }; -enum { - SLEEPING, - LAST_SIGNAL, -}; -static guint signals[LAST_SIGNAL] = {0}; - G_DEFINE_TYPE (NMSleepMonitor, nm_sleep_monitor, G_TYPE_OBJECT); -static void sleep_signal (NMSleepMonitor *self, gboolean is_about_to_suspend); - /*****************************************************************************/ #define _NMLOG_DOMAIN LOGD_SUSPEND @@ -107,6 +108,10 @@ static void sleep_signal (NMSleepMonitor *self, gboolean is_about_to_suspend); /*****************************************************************************/ +static void sleep_signal (NMSleepMonitor *self, gboolean is_about_to_suspend); + +/*****************************************************************************/ + #if USE_UPOWER static void @@ -337,6 +342,8 @@ on_proxy_acquired (GObject *object, #endif } +/*****************************************************************************/ + static void nm_sleep_monitor_init (NMSleepMonitor *self) { diff --git a/src/nm-sleep-monitor.h b/src/nm-sleep-monitor.h index d54aebbcf1..350f1eec76 100644 --- a/src/nm-sleep-monitor.h +++ b/src/nm-sleep-monitor.h @@ -29,10 +29,11 @@ #define NM_SLEEP_MONITOR_SLEEPING "sleeping" -typedef struct _NMSleepMonitorClass NMSleepMonitorClass; +typedef struct _NMSleepMonitorClass NMSleepMonitorClass; -GType nm_sleep_monitor_get_type (void) G_GNUC_CONST; -NMSleepMonitor *nm_sleep_monitor_new (void); +GType nm_sleep_monitor_get_type (void) G_GNUC_CONST; + +NMSleepMonitor *nm_sleep_monitor_new (void); typedef struct _NMSleepMonitorInhibitorHandle NMSleepMonitorInhibitorHandle; diff --git a/src/nm-types.h b/src/nm-types.h index 1fbf043e7a..8d8c02af61 100644 --- a/src/nm-types.h +++ b/src/nm-types.h @@ -51,6 +51,7 @@ typedef struct _NMRouteManager NMRouteManager; typedef struct _NMSessionMonitor NMSessionMonitor; typedef struct _NMSleepMonitor NMSleepMonitor; typedef struct _NMLldpListener NMLldpListener; +typedef struct _NMConfigDeviceStateData NMConfigDeviceStateData; typedef enum { /* In priority order; higher number == higher priority */ diff --git a/src/platform/nm-fake-platform.c b/src/platform/nm-fake-platform.c index 8a4f69b69e..3726518bf5 100644 --- a/src/platform/nm-fake-platform.c +++ b/src/platform/nm-fake-platform.c @@ -36,7 +36,39 @@ #include "nm-test-utils-core.h" -/*********************************************************************************************/ +/*****************************************************************************/ + +typedef struct { + NMPlatformLink link; + + char *udi; + NMPObject *lnk; + struct in6_addr ip6_lladdr; +} NMFakePlatformLink; + +typedef struct { + GHashTable *options; + GArray *links; + GArray *ip4_addresses; + GArray *ip6_addresses; + GArray *ip4_routes; + GArray *ip6_routes; +} NMFakePlatformPrivate; + +struct _NMFakePlatform { + NMPlatform parent; + NMFakePlatformPrivate _priv; +}; + +struct _NMFakePlatformClass { + NMPlatformClass parent; +}; + +G_DEFINE_TYPE (NMFakePlatform, nm_fake_platform, NM_TYPE_PLATFORM) + +#define NM_FAKE_PLATFORM_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMFakePlatform, NM_IS_FAKE_PLATFORM) + +/*****************************************************************************/ #define _NMLOG_PREFIX_NAME "platform-fake" #define _NMLOG_DOMAIN LOGD_PLATFORM @@ -62,30 +94,7 @@ } \ } G_STMT_END -/*********************************************************************************************/ - -typedef struct { - GHashTable *options; - GArray *links; - GArray *ip4_addresses; - GArray *ip6_addresses; - GArray *ip4_routes; - GArray *ip6_routes; -} NMFakePlatformPrivate; - -typedef struct { - NMPlatformLink link; - - char *udi; - NMPObject *lnk; - struct in6_addr ip6_lladdr; -} NMFakePlatformLink; - -#define NM_FAKE_PLATFORM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_FAKE_PLATFORM, NMFakePlatformPrivate)) - -G_DEFINE_TYPE (NMFakePlatform, nm_fake_platform, NM_TYPE_PLATFORM) - -/******************************************************************/ +/*****************************************************************************/ static void link_changed (NMPlatform *platform, NMFakePlatformLink *device, gboolean raise_signal); @@ -99,7 +108,7 @@ static gboolean ip6_address_add (NMPlatform *platform, guint flags); static gboolean ip6_address_delete (NMPlatform *platform, int ifindex, struct in6_addr addr, guint8 plen); -/******************************************************************/ +/*****************************************************************************/ static gboolean _ip4_address_equal_peer_net (in_addr_t peer1, in_addr_t peer2, guint8 plen) @@ -107,12 +116,12 @@ _ip4_address_equal_peer_net (in_addr_t peer1, in_addr_t peer2, guint8 plen) return ((peer1 ^ peer2) & nm_utils_ip4_prefix_to_netmask (plen)) == 0; } -/******************************************************************/ +/*****************************************************************************/ static gboolean sysctl_set (NMPlatform *platform, const char *path, const char *value) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); g_hash_table_insert (priv->options, g_strdup (path), g_strdup (value)); @@ -122,7 +131,7 @@ sysctl_set (NMPlatform *platform, const char *path, const char *value) static char * sysctl_get (NMPlatform *platform, const char *path) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); return g_strdup (g_hash_table_lookup (priv->options, path)); } @@ -186,7 +195,7 @@ link_init (NMFakePlatformLink *device, int ifindex, int type, const char *name) static NMFakePlatformLink * link_get (NMPlatform *platform, int ifindex) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); NMFakePlatformLink *device; if (ifindex >= priv->links->len) @@ -204,7 +213,7 @@ not_found: static GArray * link_get_all (NMPlatform *platform) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); GArray *links = g_array_sized_new (TRUE, TRUE, sizeof (NMPlatformLink), priv->links->len); int i; @@ -226,7 +235,7 @@ _nm_platform_link_get (NMPlatform *platform, int ifindex) static const NMPlatformLink * _nm_platform_link_get_by_ifname (NMPlatform *platform, const char *ifname) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); guint i; for (i = 0; i < priv->links->len; i++) { @@ -243,7 +252,7 @@ _nm_platform_link_get_by_address (NMPlatform *platform, gconstpointer address, size_t length) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); guint i; if ( length == 0 @@ -296,7 +305,7 @@ link_add (NMPlatform *platform, size_t address_len, const NMPlatformLink **out_link) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); NMFakePlatformLink device; NMFakePlatformLink *new_device; @@ -325,7 +334,7 @@ link_add (NMPlatform *platform, static gboolean link_delete (NMPlatform *platform, int ifindex) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); NMFakePlatformLink *device = link_get (platform, ifindex); NMPlatformLink deleted_device; int i; @@ -378,7 +387,7 @@ link_get_type_name (NMPlatform *platform, int ifindex) static void link_changed (NMPlatform *platform, NMFakePlatformLink *device, gboolean raise_signal) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); int i; if (raise_signal) @@ -839,12 +848,12 @@ mesh_set_ssid (NMPlatform *platform, int ifindex, const guint8 *ssid, gsize len) return FALSE; } -/******************************************************************/ +/*****************************************************************************/ static GArray * ip4_address_get_all (NMPlatform *platform, int ifindex) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); GArray *addresses; NMPlatformIP4Address *address; int count = 0, i; @@ -871,7 +880,7 @@ ip4_address_get_all (NMPlatform *platform, int ifindex) static GArray * ip6_address_get_all (NMPlatform *platform, int ifindex) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); GArray *addresses; NMPlatformIP6Address *address; int count = 0, i; @@ -907,7 +916,7 @@ ip4_address_add (NMPlatform *platform, guint32 flags, const char *label) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); NMPlatformIP4Address address; int i; @@ -958,7 +967,7 @@ ip6_address_add (NMPlatform *platform, guint32 preferred, guint32 flags) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); NMPlatformIP6Address address; int i; @@ -998,7 +1007,7 @@ ip6_address_add (NMPlatform *platform, static gboolean ip4_address_delete (NMPlatform *platform, int ifindex, in_addr_t addr, guint8 plen, in_addr_t peer_address) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); int i; for (i = 0; i < priv->ip4_addresses->len; i++) { @@ -1023,7 +1032,7 @@ ip4_address_delete (NMPlatform *platform, int ifindex, in_addr_t addr, guint8 pl static gboolean ip6_address_delete (NMPlatform *platform, int ifindex, struct in6_addr addr, guint8 plen) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); int i; for (i = 0; i < priv->ip6_addresses->len; i++) { @@ -1047,7 +1056,7 @@ ip6_address_delete (NMPlatform *platform, int ifindex, struct in6_addr addr, gui static const NMPlatformIP4Address * ip4_address_get (NMPlatform *platform, int ifindex, in_addr_t addr, guint8 plen, in_addr_t peer_address) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); int i; for (i = 0; i < priv->ip4_addresses->len; i++) { @@ -1066,7 +1075,7 @@ ip4_address_get (NMPlatform *platform, int ifindex, in_addr_t addr, guint8 plen, static const NMPlatformIP6Address * ip6_address_get (NMPlatform *platform, int ifindex, struct in6_addr addr, guint8 plen) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); int i; for (i = 0; i < priv->ip6_addresses->len; i++) { @@ -1081,12 +1090,12 @@ ip6_address_get (NMPlatform *platform, int ifindex, struct in6_addr addr, guint8 return NULL; } -/******************************************************************/ +/*****************************************************************************/ static GArray * ip4_route_get_all (NMPlatform *platform, int ifindex, NMPlatformGetRouteFlags flags) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); GArray *routes; NMPlatformIP4Route *route; guint i; @@ -1116,7 +1125,7 @@ ip4_route_get_all (NMPlatform *platform, int ifindex, NMPlatformGetRouteFlags fl static GArray * ip6_route_get_all (NMPlatform *platform, int ifindex, NMPlatformGetRouteFlags flags) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); GArray *routes; NMPlatformIP6Route *route; guint i; @@ -1146,7 +1155,7 @@ ip6_route_get_all (NMPlatform *platform, int ifindex, NMPlatformGetRouteFlags fl static gboolean ip4_route_delete (NMPlatform *platform, int ifindex, in_addr_t network, guint8 plen, guint32 metric) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); int i; for (i = 0; i < priv->ip4_routes->len; i++) { @@ -1170,7 +1179,7 @@ ip4_route_delete (NMPlatform *platform, int ifindex, in_addr_t network, guint8 p static gboolean ip6_route_delete (NMPlatform *platform, int ifindex, struct in6_addr network, guint8 plen, guint32 metric) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); int i; metric = nm_utils_ip6_route_metric_normalize (metric); @@ -1198,7 +1207,7 @@ ip4_route_add (NMPlatform *platform, int ifindex, NMIPConfigSource source, in_addr_t network, guint8 plen, in_addr_t gateway, in_addr_t pref_src, guint32 metric, guint32 mss) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); NMPlatformIP4Route route; guint i; guint8 scope; @@ -1266,7 +1275,7 @@ ip6_route_add (NMPlatform *platform, int ifindex, NMIPConfigSource source, struct in6_addr network, guint8 plen, struct in6_addr gateway, guint32 metric, guint32 mss) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); NMPlatformIP6Route route; guint i; @@ -1330,7 +1339,7 @@ ip6_route_add (NMPlatform *platform, int ifindex, NMIPConfigSource source, static const NMPlatformIP4Route * ip4_route_get (NMPlatform *platform, int ifindex, in_addr_t network, guint8 plen, guint32 metric) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); int i; for (i = 0; i < priv->ip4_routes->len; i++) { @@ -1349,7 +1358,7 @@ ip4_route_get (NMPlatform *platform, int ifindex, in_addr_t network, guint8 plen static const NMPlatformIP6Route * ip6_route_get (NMPlatform *platform, int ifindex, struct in6_addr network, guint8 plen, guint32 metric) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (platform); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) platform); int i; metric = nm_utils_ip6_route_metric_normalize (metric); @@ -1367,7 +1376,7 @@ ip6_route_get (NMPlatform *platform, int ifindex, struct in6_addr network, guint return NULL; } -/******************************************************************/ +/*****************************************************************************/ static void nm_fake_platform_init (NMFakePlatform *fake_platform) @@ -1404,9 +1413,9 @@ nm_fake_platform_setup (void) } static void -nm_fake_platform_finalize (GObject *object) +finalize (GObject *object) { - NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE (object); + NMFakePlatformPrivate *priv = NM_FAKE_PLATFORM_GET_PRIVATE ((NMFakePlatform *) object); int i; g_hash_table_unref (priv->options); @@ -1431,10 +1440,7 @@ nm_fake_platform_class_init (NMFakePlatformClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); NMPlatformClass *platform_class = NM_PLATFORM_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMFakePlatformPrivate)); - - /* virtual methods */ - object_class->finalize = nm_fake_platform_finalize; + object_class->finalize = finalize; platform_class->sysctl_set = sysctl_set; platform_class->sysctl_get = sysctl_get; diff --git a/src/platform/nm-fake-platform.h b/src/platform/nm-fake-platform.h index 53a2ff1a6a..8f42d11a40 100644 --- a/src/platform/nm-fake-platform.h +++ b/src/platform/nm-fake-platform.h @@ -30,17 +30,8 @@ #define NM_IS_FAKE_PLATFORM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_FAKE_PLATFORM)) #define NM_FAKE_PLATFORM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_FAKE_PLATFORM, NMFakePlatformClass)) -/******************************************************************/ - -typedef struct { - NMPlatform parent; -} NMFakePlatform; - -typedef struct { - NMPlatformClass parent; -} NMFakePlatformClass; - -/******************************************************************/ +typedef struct _NMFakePlatform NMFakePlatform; +typedef struct _NMFakePlatformClass NMFakePlatformClass; GType nm_fake_platform_get_type (void); diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c index cedc220a75..9a22f02910 100644 --- a/src/platform/nm-linux-platform.c +++ b/src/platform/nm-linux-platform.c @@ -62,11 +62,11 @@ /* nm-internal error codes for libnl. Make sure they don't overlap. */ #define _NLE_NM_NOBUFS 500 -/*********************************************************************************************/ +/*****************************************************************************/ #define IFQDISCSIZ 32 -/*********************************************************************************************/ +/*****************************************************************************/ #ifndef IFLA_PROMISCUITY #define IFLA_PROMISCUITY 30 @@ -114,7 +114,7 @@ #define IP6_FLOWINFO_TCLASS_SHIFT 20 #define IP6_FLOWINFO_FLOWLABEL_MASK 0x000FFFFF -/*********************************************************************************************/ +/*****************************************************************************/ #define _NMLOG_PREFIX_NAME "platform-linux" #define _NMLOG_DOMAIN LOGD_PLATFORM @@ -550,7 +550,7 @@ _addrtime_get_lifetimes (guint32 timestamp, *out_preferred = preferred; } -/******************************************************************/ +/*****************************************************************************/ static const NMPObject * _lookup_cached_link (const NMPCache *cache, int ifindex, gboolean *completed_from_cache, const NMPObject **link_cached) @@ -571,7 +571,7 @@ _lookup_cached_link (const NMPCache *cache, int ifindex, gboolean *completed_fro return *link_cached; } -/******************************************************************/ +/*****************************************************************************/ #define DEVTYPE_PREFIX "DEVTYPE=" @@ -1975,7 +1975,7 @@ nmp_object_new_from_nl (NMPlatform *platform, const NMPCache *cache, struct nl_m } } -/******************************************************************/ +/*****************************************************************************/ static gboolean _nl_msg_new_link_set_afspec (struct nl_msg *msg, @@ -2352,7 +2352,7 @@ nla_put_failure: g_return_val_if_reached (NULL); } -/******************************************************************/ +/*****************************************************************************/ static int _support_kernel_extended_ifa_flags = -1; @@ -2404,9 +2404,7 @@ typedef struct { gint *out_refresh_all_in_progess; } DelayedActionWaitForNlResponseData; -typedef struct _NMLinuxPlatformPrivate NMLinuxPlatformPrivate; - -struct _NMLinuxPlatformPrivate { +typedef struct { struct nl_sock *nlh; guint32 nlh_seq_next; #ifdef NM_MORE_LOGGING @@ -2441,18 +2439,27 @@ struct _NMLinuxPlatformPrivate { GHashTable *prune_candidates; GHashTable *wifi_data; +} NMLinuxPlatformPrivate; + +struct _NMLinuxPlatform { + NMPlatform parent; + NMLinuxPlatformPrivate _priv; }; +struct _NMLinuxPlatformClass { + NMPlatformClass parent; +}; + +G_DEFINE_TYPE (NMLinuxPlatform, nm_linux_platform, NM_TYPE_PLATFORM) + static inline NMLinuxPlatformPrivate * NM_LINUX_PLATFORM_GET_PRIVATE (const void *self) { nm_assert (NM_IS_LINUX_PLATFORM (self)); - return ((NMLinuxPlatform *) self)->priv; + return &(((NMLinuxPlatform *) self)->_priv); } -G_DEFINE_TYPE (NMLinuxPlatform, nm_linux_platform, NM_TYPE_PLATFORM) - NMPlatform * nm_linux_platform_new (gboolean netns_support) { @@ -2471,7 +2478,7 @@ nm_linux_platform_setup (void) NULL); } -/******************************************************************/ +/*****************************************************************************/ static void _assert_netns_current (NMPlatform *platform) @@ -2703,7 +2710,7 @@ sysctl_get (NMPlatform *platform, const char *path) return contents; } -/******************************************************************/ +/*****************************************************************************/ static gboolean check_support_kernel_extended_ifa_flags (NMPlatform *platform) @@ -2727,14 +2734,14 @@ process_events (NMPlatform *platform) delayed_action_handle_all (platform, TRUE); } -/******************************************************************/ +/*****************************************************************************/ #define cache_lookup_all_objects(type, platform, obj_type, visible_only) \ ((const type *const*) nmp_cache_lookup_multi (NM_LINUX_PLATFORM_GET_PRIVATE ((platform))->cache, \ nmp_cache_id_init_object_type (NMP_CACHE_ID_STATIC, (obj_type), (visible_only)), \ NULL)) -/******************************************************************/ +/*****************************************************************************/ static void do_emit_signal (NMPlatform *platform, const NMPObject *obj, NMPCacheOpsType cache_op, gboolean was_visible) @@ -2804,7 +2811,7 @@ do_emit_signal (NMPlatform *platform, const NMPObject *obj, NMPCacheOpsType cach (NMPlatformSignalChangeType) cache_op); } -/******************************************************************/ +/*****************************************************************************/ _NM_UTILS_LOOKUP_DEFINE (static, delayed_action_refresh_from_object_type, NMPObjectType, DelayedActionType, NM_UTILS_LOOKUP_DEFAULT_NM_ASSERT (DELAYED_ACTION_TYPE_NONE), @@ -3163,7 +3170,7 @@ delayed_action_schedule_WAIT_FOR_NL_RESPONSE (NMPlatform *platform, &data); } -/******************************************************************/ +/*****************************************************************************/ static void cache_prune_candidates_record_all (NMPlatform *platform, NMPObjectType obj_type) @@ -3509,7 +3516,7 @@ cache_post (NMPlatform *platform, } } -/******************************************************************/ +/*****************************************************************************/ static int _nl_send_auto_with_seq (NMPlatform *platform, @@ -3771,7 +3778,7 @@ event_valid_msg (NMPlatform *platform, struct nl_msg *msg, gboolean handle_event cache_prune_candidates_drop (platform, obj_cache); } -/******************************************************************/ +/*****************************************************************************/ static const NMPObject * cache_lookup_link (NMPlatform *platform, int ifindex) @@ -5224,7 +5231,7 @@ link_release (NMPlatform *platform, int master, int slave) return link_enslave (platform, 0, slave); } -/******************************************************************/ +/*****************************************************************************/ static gboolean _infiniband_partition_action (NMPlatform *platform, @@ -5290,7 +5297,7 @@ infiniband_partition_delete (NMPlatform *platform, int parent, int p_key) return _infiniband_partition_action (platform, INFINIBAND_ACTION_DELETE_CHILD, parent, p_key, NULL); } -/******************************************************************/ +/*****************************************************************************/ static WifiData * wifi_get_wifi_data (NMPlatform *platform, int ifindex) @@ -5421,7 +5428,7 @@ wifi_indicate_addressing_running (NMPlatform *platform, int ifindex, gboolean ru wifi_utils_indicate_addressing_running (wifi_data, running); } -/******************************************************************/ +/*****************************************************************************/ static gboolean link_can_assume (NMPlatform *platform, int ifindex) @@ -5464,7 +5471,7 @@ link_can_assume (NMPlatform *platform, int ifindex) return FALSE; } -/******************************************************************/ +/*****************************************************************************/ static guint32 mesh_get_channel (NMPlatform *platform, int ifindex) @@ -5487,7 +5494,7 @@ mesh_set_ssid (NMPlatform *platform, int ifindex, const guint8 *ssid, gsize len) return wifi_utils_set_mesh_ssid (wifi_data, ssid, len); } -/******************************************************************/ +/*****************************************************************************/ static gboolean link_get_wake_on_lan (NMPlatform *platform, int ifindex) @@ -5529,7 +5536,7 @@ link_get_driver_info (NMPlatform *platform, out_fw_version); } -/******************************************************************/ +/*****************************************************************************/ static GArray * ipx_address_get_all (NMPlatform *platform, int ifindex, NMPObjectType obj_type) @@ -5694,7 +5701,7 @@ ip6_address_get (NMPlatform *platform, int ifindex, struct in6_addr addr, guint8 return NULL; } -/******************************************************************/ +/*****************************************************************************/ static GArray * ipx_route_get_all (NMPlatform *platform, int ifindex, NMPObjectType obj_type, NMPlatformGetRouteFlags flags) @@ -5909,7 +5916,7 @@ ip6_route_get (NMPlatform *platform, int ifindex, struct in6_addr network, guint return NULL; } -/******************************************************************/ +/*****************************************************************************/ #define EVENT_CONDITIONS ((GIOCondition) (G_IO_IN | G_IO_PRI)) #define ERROR_CONDITIONS ((GIOCondition) (G_IO_ERR | G_IO_NVAL)) @@ -6236,7 +6243,7 @@ after_read: } } -/******************************************************************/ +/*****************************************************************************/ static void cache_update_link_udev (NMPlatform *platform, int ifindex, GUdevDevice *udev_device) @@ -6352,19 +6359,17 @@ handle_udev_event (GUdevClient *client, udev_device_removed (platform, udev_device); } -/******************************************************************/ +/*****************************************************************************/ static void nm_linux_platform_init (NMLinuxPlatform *self) { - NMLinuxPlatformPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_LINUX_PLATFORM, NMLinuxPlatformPrivate); + NMLinuxPlatformPrivate *priv = NM_LINUX_PLATFORM_GET_PRIVATE (self); gboolean use_udev; use_udev = nmp_netns_is_initial () && access ("/sys", W_OK) == 0; - self->priv = priv; - priv->nlh_seq_next = 1; priv->cache = nmp_cache_new (use_udev); priv->delayed_action.list_master_connected = g_ptr_array_new (); @@ -6496,7 +6501,7 @@ dispose (GObject *object) } static void -nm_linux_platform_finalize (GObject *object) +finalize (GObject *object) { NMLinuxPlatformPrivate *priv = NM_LINUX_PLATFORM_GET_PRIVATE (object); @@ -6506,7 +6511,6 @@ nm_linux_platform_finalize (GObject *object) g_ptr_array_unref (priv->delayed_action.list_refresh_link); g_array_unref (priv->delayed_action.list_wait_for_nl_response); - /* Free netlink resources */ g_source_remove (priv->event_id); g_io_channel_unref (priv->event_channel); nl_socket_free (priv->nlh); @@ -6521,20 +6525,15 @@ nm_linux_platform_finalize (GObject *object) G_OBJECT_CLASS (nm_linux_platform_parent_class)->finalize (object); } -#define OVERRIDE(function) platform_class->function = function - static void nm_linux_platform_class_init (NMLinuxPlatformClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); NMPlatformClass *platform_class = NM_PLATFORM_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMLinuxPlatformPrivate)); - - /* virtual methods */ object_class->constructed = constructed; object_class->dispose = dispose; - object_class->finalize = nm_linux_platform_finalize; + object_class->finalize = finalize; platform_class->sysctl_set = sysctl_set; platform_class->sysctl_get = sysctl_get; diff --git a/src/platform/nm-linux-platform.h b/src/platform/nm-linux-platform.h index 3b2a440e52..b3272aae68 100644 --- a/src/platform/nm-linux-platform.h +++ b/src/platform/nm-linux-platform.h @@ -30,21 +30,8 @@ #define NM_IS_LINUX_PLATFORM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_LINUX_PLATFORM)) #define NM_LINUX_PLATFORM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_LINUX_PLATFORM, NMLinuxPlatformClass)) -/******************************************************************/ - -struct _NMLinuxPlatformPrivate; - -typedef struct { - NMPlatform parent; - - struct _NMLinuxPlatformPrivate *priv; -} NMLinuxPlatform; - -typedef struct { - NMPlatformClass parent; -} NMLinuxPlatformClass; - -/******************************************************************/ +typedef struct _NMLinuxPlatform NMLinuxPlatform; +typedef struct _NMLinuxPlatformClass NMLinuxPlatformClass; GType nm_linux_platform_get_type (void); diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c index 9dace69984..342736cf0f 100644 --- a/src/platform/nm-platform.c +++ b/src/platform/nm-platform.c @@ -80,10 +80,6 @@ G_STATIC_ASSERT (G_STRUCT_OFFSET (NMPlatformIPRoute, network_ptr) == G_STRUCT_OF /*****************************************************************************/ -#define NM_PLATFORM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_PLATFORM, NMPlatformPrivate)) - -G_DEFINE_TYPE (NMPlatform, nm_platform, G_TYPE_OBJECT) - static guint signals[_NM_PLATFORM_SIGNAL_ID_LAST] = { 0 }; enum { @@ -93,11 +89,15 @@ enum { LAST_PROP, }; -typedef struct { - gboolean register_singleton; +typedef struct _NMPlatformPrivate { + bool register_singleton:1; } NMPlatformPrivate; -/******************************************************************/ +G_DEFINE_TYPE (NMPlatform, nm_platform, G_TYPE_OBJECT) + +#define NM_PLATFORM_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR (self, NMPlatform, NM_IS_PLATFORM) + +/*****************************************************************************/ guint _nm_platform_signal_id_get (NMPlatformSignalIdType signal_type) @@ -109,7 +109,7 @@ _nm_platform_signal_id_get (NMPlatformSignalIdType signal_type) return signals[signal_type]; } -/******************************************************************/ +/*****************************************************************************/ /* Singleton NMPlatform subclass instance and cached class object */ NM_DEFINE_SINGLETON_INSTANCE (NMPlatform); @@ -184,7 +184,7 @@ nm_platform_try_get (void) return singleton_instance; } -/******************************************************************/ +/*****************************************************************************/ /** * _nm_platform_error_to_string: @@ -209,7 +209,7 @@ NM_UTILS_LOOKUP_STR_DEFINE (_nm_platform_error_to_string, NMPlatformError, NM_UTILS_LOOKUP_ITEM_IGNORE (_NM_PLATFORM_ERROR_MININT), ); -/******************************************************************/ +/*****************************************************************************/ gboolean nm_platform_check_support_kernel_extended_ifa_flags (NMPlatform *self) @@ -254,7 +254,7 @@ nm_platform_process_events (NMPlatform *self) klass->process_events (self); } -/******************************************************************/ +/*****************************************************************************/ /** * nm_platform_sysctl_set: @@ -386,7 +386,7 @@ nm_platform_sysctl_get_int_checked (NMPlatform *self, const char *path, guint ba return ret; } -/******************************************************************/ +/*****************************************************************************/ static int _link_get_all_presort (gconstpointer p_a, @@ -1764,7 +1764,7 @@ nm_platform_sysctl_slave_get_option (NMPlatform *self, int ifindex, const char * return link_get_option (self, ifindex, slave_category (self, ifindex), option); } -/******************************************************************************/ +/*****************************************************************************/ gboolean nm_platform_link_vlan_change (NMPlatform *self, @@ -2467,7 +2467,7 @@ _to_string_ifa_flags (guint32 ifa_flags, char *buf, gsize size) return buf; } -/******************************************************************/ +/*****************************************************************************/ gboolean nm_platform_ethtool_set_wake_on_lan (NMPlatform *self, const char *ifname, NMSettingWiredWakeOnLan wol, const char *wol_password) @@ -2493,7 +2493,7 @@ nm_platform_ethtool_get_link_speed (NMPlatform *self, const char *ifname, guint3 return nmp_utils_ethtool_get_link_speed (ifname, out_speed); } -/******************************************************************/ +/*****************************************************************************/ void nm_platform_ip4_address_set_addr (NMPlatformIP4Address *addr, in_addr_t address, guint8 plen) @@ -2838,7 +2838,7 @@ nm_platform_address_flush (NMPlatform *self, int ifindex) && nm_platform_ip6_address_sync (self, ifindex, NULL, FALSE); } -/******************************************************************/ +/*****************************************************************************/ GArray * nm_platform_ip4_route_get_all (NMPlatform *self, int ifindex, NMPlatformGetRouteFlags flags) @@ -2986,7 +2986,7 @@ nm_platform_ip6_route_get (NMPlatform *self, int ifindex, struct in6_addr networ return klass->ip6_route_get (self, ifindex, network, plen, metric); } -/******************************************************************/ +/*****************************************************************************/ const char * nm_platform_vlan_qos_mapping_to_string (const char *name, @@ -4083,7 +4083,7 @@ log_ip6_route (NMPlatform *self, NMPObjectType obj_type, int ifindex, NMPlatform _LOGD ("signal: route 6 %7s: %s", nm_platform_signal_change_type_to_string (change_type), nm_platform_ip6_route_to_string (route, NULL, 0)); } -/******************************************************************/ +/*****************************************************************************/ NMPNetns * nm_platform_netns_get (NMPlatform *self) @@ -4108,7 +4108,7 @@ nm_platform_netns_push (NMPlatform *platform, NMPNetns **netns) return TRUE; } -/******************************************************************/ +/*****************************************************************************/ static gboolean _vtr_v4_route_add (NMPlatform *self, int ifindex, const NMPlatformIPXRoute *route, gint64 metric) @@ -4175,7 +4175,7 @@ _vtr_v6_route_delete_default (NMPlatform *self, int ifindex, guint32 metric) return nm_platform_ip6_route_delete (self, ifindex, in6addr_any, 0, metric); } -/******************************************************************/ +/*****************************************************************************/ const NMPlatformVTableRoute nm_platform_vtable_route_v4 = { .is_ip4 = TRUE, @@ -4203,7 +4203,7 @@ const NMPlatformVTableRoute nm_platform_vtable_route_v6 = { .metric_normalize = nm_utils_ip6_route_metric_normalize, }; -/******************************************************************/ +/*****************************************************************************/ static void set_property (GObject *object, guint prop_id, @@ -4246,8 +4246,9 @@ constructed (GObject *object) } static void -nm_platform_init (NMPlatform *object) +nm_platform_init (NMPlatform *self) { + self->_priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_PLATFORM, NMPlatformPrivate); } static void diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h index fc6965e904..1773586937 100644 --- a/src/platform/nm-platform.h +++ b/src/platform/nm-platform.h @@ -42,12 +42,12 @@ #define NM_PLATFORM_NETNS_SUPPORT_DEFAULT FALSE -/******************************************************************/ +/*****************************************************************************/ #define NM_PLATFORM_NETNS_SUPPORT "netns-support" #define NM_PLATFORM_REGISTER_SINGLETON "register-singleton" -/******************************************************************/ +/*****************************************************************************/ /* workaround for older libnl version, that does not define these flags. */ #ifndef IFA_F_MANAGETEMPADDR @@ -481,12 +481,14 @@ typedef struct { bool multi_queue:1; } NMPlatformTunProperties; -/******************************************************************/ +/*****************************************************************************/ + +struct _NMPlatformPrivate; struct _NMPlatform { GObject parent; - NMPNetns *_netns; + struct _NMPlatformPrivate *_priv; }; typedef struct { @@ -672,7 +674,7 @@ typedef struct { const char *nm_platform_signal_change_type_to_string (NMPlatformSignalChangeType change_type); -/******************************************************************/ +/*****************************************************************************/ GType nm_platform_get_type (void); @@ -682,7 +684,7 @@ NMPlatform *nm_platform_try_get (void); #define NM_PLATFORM_GET (nm_platform_get ()) -/******************************************************************/ +/*****************************************************************************/ /** * nm_platform_route_scope_inv: diff --git a/src/platform/nmp-netns.c b/src/platform/nmp-netns.c index 26295855d8..f3704f0313 100644 --- a/src/platform/nmp-netns.c +++ b/src/platform/nmp-netns.c @@ -63,7 +63,7 @@ __ns_types_to_str (int ns_types, int ns_types_already_set, char *buf, gsize len) #define _ns_types_to_str(ns_types, ns_types_already_set, buf) \ __ns_types_to_str (ns_types, ns_types_already_set, buf, sizeof (buf)) -/*********************************************************************************************/ +/*****************************************************************************/ #define _NMLOG_DOMAIN LOGD_PLATFORM #define _NMLOG_PREFIX_NAME "netns" @@ -83,20 +83,33 @@ __ns_types_to_str (int ns_types, int ns_types_already_set, char *buf, gsize len) } \ } G_STMT_END -/*********************************************************************************************/ +/*****************************************************************************/ NM_GOBJECT_PROPERTIES_DEFINE_BASE ( PROP_FD_NET, PROP_FD_MNT, ); -typedef struct _NMPNetnsPrivate NMPNetnsPrivate; - -struct _NMPNetnsPrivate { +typedef struct { int fd_net; int fd_mnt; +} NMPNetnsPrivate; + +struct _NMPNetns { + GObject parent; + NMPNetnsPrivate _priv; }; +struct _NMPNetnsClass { + GObjectClass parent; +}; + +G_DEFINE_TYPE (NMPNetns, nmp_netns, G_TYPE_OBJECT); + +#define NMP_NETNS_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMPNetns, NMP_IS_NETNS) + +/*****************************************************************************/ + typedef struct { NMPNetns *netns; int count; @@ -106,7 +119,7 @@ typedef struct { static void _stack_push (NMPNetns *netns, int ns_types); static NMPNetns *_netns_new (GError **error); -/*********************************************************************************************/ +/*****************************************************************************/ static GArray *netns_stack = NULL; @@ -262,13 +275,7 @@ _stack_size (void) return netns_stack->len; } -/*********************************************************************************************/ - -G_DEFINE_TYPE (NMPNetns, nmp_netns, G_TYPE_OBJECT); - -#define NMP_NETNS_GET_PRIVATE(o) ((o)->priv) - -/*********************************************************************************************/ +/*****************************************************************************/ static NMPNetns * _netns_new (GError **error) @@ -311,10 +318,11 @@ _setns (NMPNetns *self, int type) { char buf[100]; int fd; + NMPNetnsPrivate *priv = NMP_NETNS_GET_PRIVATE (self); nm_assert (NM_IN_SET (type, _CLONE_NS_ALL_V)); - fd = (type == CLONE_NEWNET) ? self->priv->fd_net : self->priv->fd_mnt; + fd = (type == CLONE_NEWNET) ? priv->fd_net : priv->fd_mnt; _LOGt (self, "set netns(%s, %d)", _ns_types_to_str (type, 0, buf), fd); @@ -390,14 +398,14 @@ _netns_switch_pop (NMPNetns *self, int ns_types) return success; } -/*********************************************************************************************/ +/*****************************************************************************/ int nmp_netns_get_fd_net (NMPNetns *self) { g_return_val_if_fail (NMP_IS_NETNS (self), 0); - return self->priv->fd_net; + return NMP_NETNS_GET_PRIVATE (self)->fd_net; } int @@ -405,10 +413,10 @@ nmp_netns_get_fd_mnt (NMPNetns *self) { g_return_val_if_fail (NMP_IS_NETNS (self), 0); - return self->priv->fd_mnt; + return NMP_NETNS_GET_PRIVATE (self)->fd_mnt; } -/*********************************************************************************************/ +/*****************************************************************************/ static gboolean _nmp_netns_push_type (NMPNetns *self, int ns_types) @@ -579,7 +587,7 @@ nmp_netns_is_initial (void) return nmp_netns_get_current () == nmp_netns_get_initial (); } -/*********************************************************************************************/ +/*****************************************************************************/ gboolean nmp_netns_bind_to_path (NMPNetns *self, const char *filename, int *out_fd) @@ -657,24 +665,25 @@ nmp_netns_bind_to_path_destroy (NMPNetns *self, const char *filename) return TRUE; } -/******************************************************************************/ +/*****************************************************************************/ static void set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { NMPNetns *self = NMP_NETNS (object); + NMPNetnsPrivate *priv = NMP_NETNS_GET_PRIVATE (self); switch (prop_id) { case PROP_FD_NET: /* construct only */ - self->priv->fd_net = g_value_get_int (value); - g_return_if_fail (self->priv->fd_net > 0); + priv->fd_net = g_value_get_int (value); + g_return_if_fail (priv->fd_net > 0); break; case PROP_FD_MNT: /* construct only */ - self->priv->fd_mnt = g_value_get_int (value); - g_return_if_fail (self->priv->fd_mnt > 0); + priv->fd_mnt = g_value_get_int (value); + g_return_if_fail (priv->fd_mnt > 0); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -685,22 +694,22 @@ set_property (GObject *object, guint prop_id, static void nmp_netns_init (NMPNetns *self) { - self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NMP_TYPE_NETNS, NMPNetnsPrivate); } static void dispose (GObject *object) { NMPNetns *self = NMP_NETNS (object); + NMPNetnsPrivate *priv = NMP_NETNS_GET_PRIVATE (self); - if (self->priv->fd_net > 0) { - close (self->priv->fd_net); - self->priv->fd_net = 0; + if (priv->fd_net > 0) { + close (priv->fd_net); + priv->fd_net = 0; } - if (self->priv->fd_mnt > 0) { - close (self->priv->fd_mnt); - self->priv->fd_mnt = 0; + if (priv->fd_mnt > 0) { + close (priv->fd_mnt); + priv->fd_mnt = 0; } G_OBJECT_CLASS (nmp_netns_parent_class)->dispose (object); @@ -711,8 +720,6 @@ nmp_netns_class_init (NMPNetnsClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMPNetnsPrivate)); - object_class->set_property = set_property; object_class->dispose = dispose; diff --git a/src/platform/nmp-netns.h b/src/platform/nmp-netns.h index 4eac07acf7..eb33f2ed64 100644 --- a/src/platform/nmp-netns.h +++ b/src/platform/nmp-netns.h @@ -33,16 +33,7 @@ #define NMP_NETNS_FD_NET "fd-net" #define NMP_NETNS_FD_MNT "fd-mnt" -struct _NMPNetnsPrivate; - -struct _NMPNetns { - GObject parent; - struct _NMPNetnsPrivate *priv; -}; - -typedef struct { - GObjectClass parent; -} NMPNetnsClass; +typedef struct _NMPNetnsClass NMPNetnsClass; GType nmp_netns_get_type (void); diff --git a/src/platform/nmp-object.c b/src/platform/nmp-object.c index 30a52c259b..0bcbe2afcf 100644 --- a/src/platform/nmp-object.c +++ b/src/platform/nmp-object.c @@ -29,7 +29,7 @@ #include "nm-core-utils.h" #include "nm-platform-utils.h" -/*********************************************************************************************/ +/*****************************************************************************/ #define _NMLOG_DOMAIN LOGD_PLATFORM #define _NMLOG(level, obj, ...) \ @@ -51,7 +51,7 @@ * Disabled by default. */ #define _LOGr(...) G_STMT_START { if (FALSE) { _LOGt (__VA_ARGS__); } } G_STMT_END -/*********************************************************************************************/ +/*****************************************************************************/ struct _NMPCache { /* the cache contains only one hash table for all object types, and similarly @@ -74,7 +74,7 @@ struct _NMPCache { gboolean use_udev; }; -/******************************************************************/ +/*****************************************************************************/ static inline guint _id_hash_ip6_addr (const struct in6_addr *addr) @@ -121,7 +121,7 @@ _vlan_xgress_qos_mappings_cpy (guint *dst_n_map, } } -/******************************************************************/ +/*****************************************************************************/ static const char * _link_get_driver (GUdevDevice *udev_device, const char *kind, const char *ifname) @@ -196,7 +196,7 @@ _nmp_object_fixup_link_master_connected (NMPObject *obj, const NMPCache *cache) obj->link.connected = !obj->link.connected; } -/******************************************************************/ +/*****************************************************************************/ const NMPClass * nmp_class_from_type (NMPObjectType obj_type) @@ -206,7 +206,7 @@ nmp_class_from_type (NMPObjectType obj_type) return &_nmp_classes[obj_type - 1]; } -/******************************************************************/ +/*****************************************************************************/ NMPObject * nmp_object_ref (NMPObject *obj) @@ -292,7 +292,7 @@ nmp_object_new_link (int ifindex) return obj; } -/******************************************************************/ +/*****************************************************************************/ static const NMPObject * _nmp_object_stackinit_from_class (NMPObject *obj, const NMPClass *klass) @@ -415,7 +415,7 @@ _vt_cmd_obj_stackinit_id_ip6_route (NMPObject *obj, const NMPObject *src) nmp_object_stackinit_id_ip6_route (obj, src->ip_route.ifindex, &src->ip6_route.network, src->ip_route.plen, src->ip_route.metric); } -/******************************************************************/ +/*****************************************************************************/ const char * nmp_object_to_string (const NMPObject *obj, NMPObjectToStringMode to_string_mode, char *buf, gsize buf_size) @@ -954,7 +954,7 @@ _vt_cmd_obj_is_visible_link (const NMPObject *obj) && obj->link.name[0]; } -/******************************************************************/ +/*****************************************************************************/ #define _STRUCT_SIZE(struct_type, field) \ (G_STRUCT_OFFSET (struct_type, field) + sizeof (((struct_type *) NULL)->field)) @@ -1021,7 +1021,7 @@ nmp_cache_id_destroy (NMPCacheId *id) g_slice_free1 (n, id); } -/******************************************************************/ +/*****************************************************************************/ NMPCacheId _nmp_cache_id_static; @@ -1143,7 +1143,7 @@ nmp_cache_id_init_routes_by_destination_ip6 (NMPCacheId *id, return id; } -/******************************************************************/ +/*****************************************************************************/ static gboolean _nmp_object_init_cache_id (const NMPObject *obj, NMPCacheIdType id_type, NMPCacheId *id, const NMPCacheId **out_id) @@ -1301,7 +1301,7 @@ _vt_cmd_obj_init_cache_id_ipx_route (const NMPObject *obj, NMPCacheIdType id_typ return TRUE; } -/******************************************************************/ +/*****************************************************************************/ gboolean nmp_cache_use_udev_get (const NMPCache *cache) @@ -1311,7 +1311,7 @@ nmp_cache_use_udev_get (const NMPCache *cache) return cache->use_udev; } -/******************************************************************/ +/*****************************************************************************/ /** * nmp_cache_link_connected_needs_toggle: @@ -1416,7 +1416,7 @@ nmp_cache_link_connected_needs_toggle_by_ifindex (const NMPCache *cache, int mas return NULL; } -/******************************************************************/ +/*****************************************************************************/ const NMPlatformObject *const * nmp_cache_lookup_multi (const NMPCache *cache, const NMPCacheId *cache_id, guint *out_len) @@ -1581,7 +1581,7 @@ nmp_cache_lookup_all_to_hash (const NMPCache *cache, return hash; } -/******************************************************************/ +/*****************************************************************************/ static void _nmp_cache_update_cache (NMPCache *cache, NMPObject *obj, gboolean remove) @@ -1993,7 +1993,7 @@ nmp_cache_update_link_master_connected (NMPCache *cache, int ifindex, NMPObject return NMP_CACHE_OPS_UPDATED; } -/******************************************************************/ +/*****************************************************************************/ NMPCache * nmp_cache_new (gboolean use_udev) @@ -2034,7 +2034,7 @@ nmp_cache_free (NMPCache *cache) g_free (cache); } -/******************************************************************/ +/*****************************************************************************/ void ASSERT_nmp_cache_is_consistent (const NMPCache *cache) @@ -2092,7 +2092,7 @@ ASSERT_nmp_cache_is_consistent (const NMPCache *cache) } #endif } -/******************************************************************/ +/*****************************************************************************/ const NMPClass _nmp_classes[NMP_OBJECT_TYPE_MAX] = { [NMP_OBJECT_TYPE_LINK - 1] = { diff --git a/src/platform/tests/test-common.h b/src/platform/tests/test-common.h index 87fccee234..153592cf3c 100644 --- a/src/platform/tests/test-common.h +++ b/src/platform/tests/test-common.h @@ -12,7 +12,7 @@ #define DEVICE_NAME "nm-test-device" -/*********************************************************************************************/ +/*****************************************************************************/ #define _NMLOG_PREFIX_NAME "platform-test" #define _NMLOG_DOMAIN LOGD_PLATFORM @@ -35,12 +35,12 @@ } \ } G_STMT_END -/*********************************************************************************************/ +/*****************************************************************************/ gboolean nmtstp_is_root_test (void); gboolean nmtstp_is_sysfs_writable (void); -/******************************************************************************/ +/*****************************************************************************/ typedef struct _NMTstpNamespaceHandle NMTstpNamespaceHandle; @@ -51,7 +51,7 @@ pid_t nmtstp_namespace_handle_get_pid (NMTstpNamespaceHandle *handle); int nmtstp_namespace_get_fd_for_process (pid_t pid, const char *ns_name); -/******************************************************************************/ +/*****************************************************************************/ typedef struct { gulong handler_id; diff --git a/src/platform/tests/test-general.c b/src/platform/tests/test-general.c index f67f00892f..c67f2e0410 100644 --- a/src/platform/tests/test-general.c +++ b/src/platform/tests/test-general.c @@ -28,7 +28,7 @@ #include "nm-test-utils-core.h" -/******************************************************************/ +/*****************************************************************************/ static void test_init_linux_platform (void) @@ -38,7 +38,7 @@ test_init_linux_platform (void) platform = nm_linux_platform_new (NM_PLATFORM_NETNS_SUPPORT_DEFAULT); } -/******************************************************************/ +/*****************************************************************************/ static void test_link_get_all (void) @@ -51,7 +51,7 @@ test_link_get_all (void) links = nm_platform_link_get_all (platform); } -/******************************************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/src/platform/tests/test-link.c b/src/platform/tests/test-link.c index e242a71f11..8a784cf05e 100644 --- a/src/platform/tests/test-link.c +++ b/src/platform/tests/test-link.c @@ -1870,7 +1870,7 @@ again: nmtstp_link_del (NULL, -1, ifindex_dummy0, IFACE_DUMMY0); } -/******************************************************************/ +/*****************************************************************************/ static void _test_netns_setup (gpointer fixture, gconstpointer test_data) @@ -1933,7 +1933,7 @@ _test_netns_check_skip (void) return FALSE; } -/******************************************************************/ +/*****************************************************************************/ #define _sysctl_assert_eq(plat, path, value) \ G_STMT_START { \ diff --git a/src/platform/tests/test-nmp-object.c b/src/platform/tests/test-nmp-object.c index 9d4f69de4c..ccc256ada7 100644 --- a/src/platform/tests/test-nmp-object.c +++ b/src/platform/tests/test-nmp-object.c @@ -28,7 +28,7 @@ struct { GList *udev_devices; } global; -/******************************************************************/ +/*****************************************************************************/ static gboolean _nmp_object_id_equal (const NMPObject *a, const NMPObject *b) @@ -50,7 +50,7 @@ _nmp_object_equal (const NMPObject *a, const NMPObject *b) } #define nmp_object_equal _nmp_object_equal -/******************************************************************/ +/*****************************************************************************/ static void _assert_cache_multi_lookup_contains (const NMPCache *cache, const NMPCacheId *cache_id, const NMPObject *obj, gboolean contains) @@ -85,7 +85,7 @@ _assert_cache_multi_lookup_contains (const NMPCache *cache, const NMPCacheId *ca g_assert (!!contains == found); } -/******************************************************************/ +/*****************************************************************************/ typedef struct { NMPCache *cache; @@ -382,7 +382,7 @@ test_cache_link (void) nmp_cache_free (cache); } -/******************************************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/src/platform/wifi/wifi-utils-wext.c b/src/platform/wifi/wifi-utils-wext.c index af285b45c3..002ac6aae6 100644 --- a/src/platform/wifi/wifi-utils-wext.c +++ b/src/platform/wifi/wifi-utils-wext.c @@ -369,7 +369,7 @@ wifi_wext_get_qual (WifiData *data) return wext_qual_to_percent (&stats.qual, &wext->max_qual); } -/*********************/ +/*****************************************************************************/ /* OLPC Mesh-only functions */ static guint32 @@ -441,7 +441,7 @@ wifi_wext_set_mesh_ssid (WifiData *data, const guint8 *ssid, gsize len) return FALSE; } -/*********************/ +/*****************************************************************************/ static gboolean wext_can_scan (WifiDataWext *wext) diff --git a/src/platform/wifi/wifi-utils.c b/src/platform/wifi/wifi-utils.c index b7fe86bbe1..de858e499a 100644 --- a/src/platform/wifi/wifi-utils.c +++ b/src/platform/wifi/wifi-utils.c @@ -53,7 +53,7 @@ wifi_data_free (WifiData *data) g_free (data); } -/***************************************************************/ +/*****************************************************************************/ WifiData * wifi_utils_init (const char *iface, int ifindex, gboolean check_scan) diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c index a51f7cfa6c..0f0b9a5939 100644 --- a/src/ppp-manager/nm-ppp-manager.c +++ b/src/ppp-manager/nm-ppp-manager.c @@ -21,6 +21,8 @@ #include "nm-default.h" +#include "nm-ppp-manager.h" + #include <sys/types.h> #include <sys/wait.h> #include <signal.h> @@ -28,7 +30,6 @@ #include <unistd.h> #include <arpa/inet.h> #include <stdlib.h> - #include <errno.h> #include <sys/socket.h> #include <sys/ioctl.h> @@ -43,28 +44,36 @@ #include <linux/if_ppp.h> #include "NetworkManagerUtils.h" -#include "nm-ppp-manager.h" #include "nm-platform.h" #include "nm-core-internal.h" +#include "nm-act-request.h" +#include "nm-ip4-config.h" +#include "nm-ip6-config.h" +#include "nm-pppd-plugin.h" +#include "nm-ppp-status.h" #include "nmdbus-ppp-manager.h" -#define _NMLOG_DOMAIN LOGD_PPP -#define _NMLOG_PREFIX_NAME "ppp-manager" -#define _NMLOG(level, ...) \ - G_STMT_START { \ - nm_log ((level), _NMLOG_DOMAIN, \ - "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - _NMLOG_PREFIX_NAME": " \ - _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ - } G_STMT_END - -static void _ppp_cleanup (NMPPPManager *manager); -static void _ppp_kill (NMPPPManager *manager); - #define NM_PPPD_PLUGIN PPPD_PLUGIN_DIR "/nm-pppd-plugin.so" #define PPP_MANAGER_SECRET_TRIES "ppp-manager-secret-tries" +/*****************************************************************************/ + +enum { + STATE_CHANGED, + IP4_CONFIG, + IP6_CONFIG, + STATS, + + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_PARENT_IFACE, +); + typedef struct { GPid pid; @@ -84,101 +93,37 @@ typedef struct { guint monitor_id; } NMPPPManagerPrivate; -#define NM_PPP_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_PPP_MANAGER, NMPPPManagerPrivate)) - -G_DEFINE_TYPE (NMPPPManager, nm_ppp_manager, NM_TYPE_EXPORTED_OBJECT) - -enum { - STATE_CHANGED, - IP4_CONFIG, - IP6_CONFIG, - STATS, - - LAST_SIGNAL +struct _NMPPPManager { + NMExportedObject parent; + NMPPPManagerPrivate _priv; }; -static guint signals[LAST_SIGNAL] = { 0 }; - -enum { - PROP_0, - PROP_PARENT_IFACE, - LAST_PROP +struct _NMPPPManagerClass { + NMExportedObjectClass parent; }; -static void -nm_ppp_manager_init (NMPPPManager *manager) -{ - NM_PPP_MANAGER_GET_PRIVATE (manager)->monitor_fd = -1; -} - -static void -dispose (GObject *object) -{ - NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (object); - - _ppp_cleanup (NM_PPP_MANAGER (object)); - _ppp_kill (NM_PPP_MANAGER (object)); - - g_clear_object (&priv->act_req); - - G_OBJECT_CLASS (nm_ppp_manager_parent_class)->dispose (object); -} - -static void -finalize (GObject *object) -{ - NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (object); - - g_free (priv->ip_iface); - g_free (priv->parent_iface); - - G_OBJECT_CLASS (nm_ppp_manager_parent_class)->finalize (object); -} - -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (object); +G_DEFINE_TYPE (NMPPPManager, nm_ppp_manager, NM_TYPE_EXPORTED_OBJECT) - switch (prop_id) { - case PROP_PARENT_IFACE: - g_free (priv->parent_iface); - priv->parent_iface = g_value_dup_string (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} +#define NM_PPP_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMPPPManager, NM_IS_PPP_MANAGER) -static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (object); +/*****************************************************************************/ - switch (prop_id) { - case PROP_PARENT_IFACE: - g_value_set_string (value, priv->parent_iface); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} +#define _NMLOG_DOMAIN LOGD_PPP +#define _NMLOG_PREFIX_NAME "ppp-manager" +#define _NMLOG(level, ...) \ + G_STMT_START { \ + nm_log ((level), _NMLOG_DOMAIN, \ + "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + _NMLOG_PREFIX_NAME": " \ + _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } G_STMT_END -NMPPPManager * -nm_ppp_manager_new (const char *iface) -{ - g_return_val_if_fail (iface != NULL, NULL); +/*****************************************************************************/ - return (NMPPPManager *) g_object_new (NM_TYPE_PPP_MANAGER, - NM_PPP_MANAGER_PARENT_IFACE, iface, - NULL); -} +static void _ppp_cleanup (NMPPPManager *manager); +static void _ppp_kill (NMPPPManager *manager); -/*******************************************/ +/*****************************************************************************/ static gboolean monitor_cb (gpointer user_data) @@ -224,7 +169,7 @@ monitor_stats (NMPPPManager *manager) _LOGW ("could not monitor PPP stats: %s", strerror (errno)); } -/*******************************************/ +/*****************************************************************************/ static void remove_timeout_handler (NMPPPManager *manager) @@ -587,79 +532,7 @@ impl_ppp_manager_set_ip6_config (NMPPPManager *manager, g_dbus_method_invocation_return_value (context, NULL); } -static void -nm_ppp_manager_class_init (NMPPPManagerClass *manager_class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (manager_class); - NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (manager_class); - - g_type_class_add_private (manager_class, sizeof (NMPPPManagerPrivate)); - - exported_object_class->export_path = NM_DBUS_PATH "/PPP"; - exported_object_class->export_on_construction = TRUE; - - object_class->dispose = dispose; - object_class->finalize = finalize; - object_class->get_property = get_property; - object_class->set_property = set_property; - - /* Properties */ - g_object_class_install_property - (object_class, PROP_PARENT_IFACE, - g_param_spec_string (NM_PPP_MANAGER_PARENT_IFACE, "", "", - NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS)); - - /* signals */ - signals[STATE_CHANGED] = - g_signal_new (NM_PPP_MANAGER_STATE_CHANGED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMPPPManagerClass, state_changed), - NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_UINT); - - signals[IP4_CONFIG] = - g_signal_new ("ip4-config", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMPPPManagerClass, ip4_config), - NULL, NULL, NULL, - G_TYPE_NONE, 2, - G_TYPE_STRING, - G_TYPE_OBJECT); - - signals[IP6_CONFIG] = - g_signal_new ("ip6-config", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMPPPManagerClass, ip6_config), - NULL, NULL, NULL, - G_TYPE_NONE, 3, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_OBJECT); - - signals[STATS] = - g_signal_new ("stats", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMPPPManagerClass, stats), - NULL, NULL, NULL, - G_TYPE_NONE, 2, - G_TYPE_UINT, G_TYPE_UINT); - - nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (manager_class), - NMDBUS_TYPE_PPP_MANAGER_SKELETON, - "NeedSecrets", impl_ppp_manager_need_secrets, - "SetIp4Config", impl_ppp_manager_set_ip4_config, - "SetIp6Config", impl_ppp_manager_set_ip6_config, - "SetState", impl_ppp_manager_set_state, - NULL); -} - -/*******************************************/ - - +/*****************************************************************************/ typedef struct { GPtrArray *array; @@ -714,7 +587,7 @@ nm_cmd_line_add_int (NMCmdLine *cmd, int i) g_free (str); } -/*******************************************/ +/*****************************************************************************/ static void ppp_exit_code (guint pppd_exit_status, GPid pid) @@ -1148,7 +1021,7 @@ _ppp_cleanup (NMPPPManager *manager) nm_clear_g_source (&priv->ppp_watch_id); } -/***********************************************************/ +/*****************************************************************************/ typedef struct { NMPPPManager *manager; @@ -1239,3 +1112,149 @@ nm_ppp_manager_stop (NMPPPManager *manager, ctx); priv->pid = 0; } + +/*****************************************************************************/ + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE ((NMPPPManager *) object); + + switch (prop_id) { + case PROP_PARENT_IFACE: + g_value_set_string (value, priv->parent_iface); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE ((NMPPPManager *) object); + + switch (prop_id) { + case PROP_PARENT_IFACE: + g_free (priv->parent_iface); + priv->parent_iface = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/*****************************************************************************/ + +static void +nm_ppp_manager_init (NMPPPManager *manager) +{ + NM_PPP_MANAGER_GET_PRIVATE (manager)->monitor_fd = -1; +} + +NMPPPManager * +nm_ppp_manager_new (const char *iface) +{ + g_return_val_if_fail (iface != NULL, NULL); + + return (NMPPPManager *) g_object_new (NM_TYPE_PPP_MANAGER, + NM_PPP_MANAGER_PARENT_IFACE, iface, + NULL); +} + +static void +dispose (GObject *object) +{ + NMPPPManager *self = (NMPPPManager *) object; + NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (self); + + _ppp_cleanup (self); + _ppp_kill (self); + + g_clear_object (&priv->act_req); + + G_OBJECT_CLASS (nm_ppp_manager_parent_class)->dispose (object); +} + +static void +finalize (GObject *object) +{ + NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE ((NMPPPManager *) object); + + g_free (priv->ip_iface); + g_free (priv->parent_iface); + + G_OBJECT_CLASS (nm_ppp_manager_parent_class)->finalize (object); +} + +static void +nm_ppp_manager_class_init (NMPPPManagerClass *manager_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (manager_class); + NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (manager_class); + + object_class->dispose = dispose; + object_class->finalize = finalize; + object_class->get_property = get_property; + object_class->set_property = set_property; + + exported_object_class->export_path = NM_DBUS_PATH "/PPP"; + exported_object_class->export_on_construction = TRUE; + + obj_properties[PROP_PARENT_IFACE] = + g_param_spec_string (NM_PPP_MANAGER_PARENT_IFACE, "", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + + signals[STATE_CHANGED] = + g_signal_new (NM_PPP_MANAGER_STATE_CHANGED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 1, + G_TYPE_UINT); + + signals[IP4_CONFIG] = + g_signal_new ("ip4-config", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 2, + G_TYPE_STRING, + G_TYPE_OBJECT); + + signals[IP6_CONFIG] = + g_signal_new ("ip6-config", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 3, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_OBJECT); + + signals[STATS] = + g_signal_new ("stats", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 2, + G_TYPE_UINT, G_TYPE_UINT); + + nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (manager_class), + NMDBUS_TYPE_PPP_MANAGER_SKELETON, + "NeedSecrets", impl_ppp_manager_need_secrets, + "SetIp4Config", impl_ppp_manager_set_ip4_config, + "SetIp6Config", impl_ppp_manager_set_ip6_config, + "SetState", impl_ppp_manager_set_state, + NULL); +} + diff --git a/src/ppp-manager/nm-ppp-manager.h b/src/ppp-manager/nm-ppp-manager.h index 188be84e4c..da1fdb5539 100644 --- a/src/ppp-manager/nm-ppp-manager.h +++ b/src/ppp-manager/nm-ppp-manager.h @@ -22,16 +22,6 @@ #ifndef __NETWORKMANAGER_PPP_MANAGER_H__ #define __NETWORKMANAGER_PPP_MANAGER_H__ - -#include "nm-exported-object.h" -#include "nm-ppp-status.h" -#include "nm-activation-request.h" -#include "nm-connection.h" -#include "nm-ip4-config.h" -#include "nm-ip6-config.h" -#include "nm-pppd-plugin.h" -#include "NetworkManagerUtils.h" - #define NM_TYPE_PPP_MANAGER (nm_ppp_manager_get_type ()) #define NM_PPP_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_PPP_MANAGER, NMPPPManager)) #define NM_PPP_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_PPP_MANAGER, NMPPPManagerClass)) @@ -41,25 +31,10 @@ #define NM_PPP_MANAGER_PARENT_IFACE "parent-iface" -/* signals */ #define NM_PPP_MANAGER_STATE_CHANGED "state-changed" -typedef struct { - NMExportedObject parent; -} NMPPPManager; - -typedef struct { - NMExportedObjectClass parent; - - /* Signals */ - void (*state_changed) (NMPPPManager *manager, NMPPPStatus status); - void (*ip4_config) (NMPPPManager *manager, const char *iface, NMIP4Config *config); - void (*ip6_config) (NMPPPManager *manager, - const char *iface, - const NMUtilsIPv6IfaceId *iid, - NMIP6Config *config); - void (*stats) (NMPPPManager *manager, guint32 in_bytes, guint32 out_bytes); -} NMPPPManagerClass; +typedef struct _NMPPPManager NMPPPManager; +typedef struct _NMPPPManagerClass NMPPPManagerClass; GType nm_ppp_manager_get_type (void); diff --git a/src/rdisc/nm-fake-rdisc.c b/src/rdisc/nm-fake-rdisc.c index 46f2b08cf1..aee94a39be 100644 --- a/src/rdisc/nm-fake-rdisc.c +++ b/src/rdisc/nm-fake-rdisc.c @@ -20,14 +20,17 @@ #include "nm-default.h" +#include "nm-fake-rdisc.h" + #include <string.h> #include <arpa/inet.h> -#include "nm-fake-rdisc.h" #include "nm-rdisc-private.h" #define _NMLOG_PREFIX_NAME "rdisc-fake" +/*****************************************************************************/ + typedef struct { guint id; guint when; @@ -51,22 +54,33 @@ typedef struct { NMRDiscPreference preference; } FakePrefix; +/*****************************************************************************/ + +enum { + RS_SENT, + LAST_SIGNAL, +}; +static guint signals[LAST_SIGNAL] = { 0 }; + typedef struct { guint receive_ra_id; GSList *ras; } NMFakeRDiscPrivate; -#define NM_FAKE_RDISC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_FAKE_RDISC, NMFakeRDiscPrivate)) +struct _NMFakeRRDisc { + NMRDisc parent; + NMFakeRDiscPrivate _priv; +}; + +struct _NMFakeRRDiscClass { + NMRDiscClass parent; +}; G_DEFINE_TYPE (NMFakeRDisc, nm_fake_rdisc, NM_TYPE_RDISC) -enum { - RS_SENT, - LAST_SIGNAL -}; -static guint signals[LAST_SIGNAL] = { 0 }; +#define NM_FAKE_RDISC_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMFakeRDisc, NM_IS_FAKE_RDISC) -/******************************************************************/ +/*****************************************************************************/ static void fake_ra_free (gpointer data) @@ -218,7 +232,7 @@ nm_fake_rdisc_done (NMFakeRDisc *self) return !NM_FAKE_RDISC_GET_PRIVATE (self)->ras; } -/******************************************************************/ +/*****************************************************************************/ static gboolean send_rs (NMRDisc *rdisc, GError **error) @@ -328,12 +342,12 @@ receive_ra (gpointer user_data) static void start (NMRDisc *rdisc) { - NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE (rdisc); + NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE ((NMFakeRDisc *) rdisc); FakeRa *ra; /* Queue up the first fake RA */ g_assert (priv->ras); - ra = NM_FAKE_RDISC_GET_PRIVATE (rdisc)->ras->data; + ra = priv->ras->data; g_assert (!priv->receive_ra_id); priv->receive_ra_id = g_timeout_add_seconds (ra->when, receive_ra, rdisc); @@ -346,7 +360,12 @@ nm_fake_rdisc_emit_new_ras (NMFakeRDisc *self) start (NM_RDISC (self)); } -/******************************************************************/ +/*****************************************************************************/ + +static void +nm_fake_rdisc_init (NMFakeRDisc *fake_rdisc) +{ +} NMRDisc * nm_fake_rdisc_new (int ifindex, const char *ifname) @@ -358,14 +377,9 @@ nm_fake_rdisc_new (int ifindex, const char *ifname) } static void -nm_fake_rdisc_init (NMFakeRDisc *fake_rdisc) -{ -} - -static void dispose (GObject *object) { - NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE (object); + NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE ((NMFakeRDisc *) object); nm_clear_g_source (&priv->receive_ra_id); @@ -381,9 +395,8 @@ nm_fake_rdisc_class_init (NMFakeRDiscClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); NMRDiscClass *rdisc_class = NM_RDISC_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMFakeRDiscPrivate)); - object_class->dispose = dispose; + rdisc_class->start = start; rdisc_class->send_rs = send_rs; diff --git a/src/rdisc/nm-fake-rdisc.h b/src/rdisc/nm-fake-rdisc.h index 1082ba5ef1..5f6509568d 100644 --- a/src/rdisc/nm-fake-rdisc.h +++ b/src/rdisc/nm-fake-rdisc.h @@ -32,15 +32,8 @@ #define NM_FAKE_RDISC_RS_SENT "rs-sent" -typedef struct { - NMRDisc parent; -} NMFakeRDisc; - -typedef struct { - NMRDiscClass parent; -} NMFakeRDiscClass; - -/******************************************************************/ +typedef struct _NMFakeRRDisc NMFakeRDisc; +typedef struct _NMFakeRRDiscClass NMFakeRDiscClass; GType nm_fake_rdisc_get_type (void); diff --git a/src/rdisc/nm-rdisc-private.h b/src/rdisc/nm-rdisc-private.h index abc5a399b9..cc2f1ae10d 100644 --- a/src/rdisc/nm-rdisc-private.h +++ b/src/rdisc/nm-rdisc-private.h @@ -44,7 +44,7 @@ gboolean nm_rdisc_add_route (NMRDisc *rdisc, const NMRDiscRoute * gboolean nm_rdisc_add_dns_server (NMRDisc *rdisc, const NMRDiscDNSServer *new); gboolean nm_rdisc_add_dns_domain (NMRDisc *rdisc, const NMRDiscDNSDomain *new); -/*********************************************************************************************/ +/*****************************************************************************/ #define _NMLOG_DOMAIN LOGD_IP6 #define _NMLOG(level, ...) _LOG(level, _NMLOG_DOMAIN, rdisc, __VA_ARGS__) @@ -72,6 +72,6 @@ gboolean nm_rdisc_add_dns_domain (NMRDisc *rdisc, const NMRDiscDNSDoma } \ } G_STMT_END -/*********************************************************************************************/ +/*****************************************************************************/ #endif /* __NETWORKMANAGER_RDISC_PRIVATE_H__ */ diff --git a/src/rdisc/nm-rdisc.c b/src/rdisc/nm-rdisc.c index 3bc697504a..c7437a106c 100644 --- a/src/rdisc/nm-rdisc.c +++ b/src/rdisc/nm-rdisc.c @@ -423,7 +423,7 @@ nm_rdisc_add_dns_domain (NMRDisc *rdisc, const NMRDiscDNSDomain *new) return !!new->lifetime; } -/******************************************************************/ +/*****************************************************************************/ /** * nm_rdisc_set_iid: @@ -857,7 +857,7 @@ nm_rdisc_ra_received (NMRDisc *rdisc, guint32 now, NMRDiscConfigMap changed) check_timestamps (rdisc, now, changed); } -/******************************************************************/ +/*****************************************************************************/ static void dns_domain_free (gpointer data) diff --git a/src/settings/nm-agent-manager.c b/src/settings/nm-agent-manager.c index 54ca2f55c5..fa5c59d54a 100644 --- a/src/settings/nm-agent-manager.c +++ b/src/settings/nm-agent-manager.c @@ -40,7 +40,47 @@ #include "nmdbus-agent-manager.h" -NM_DEFINE_SINGLETON_INSTANCE (NMAgentManager); +/*****************************************************************************/ + +enum { + AGENT_REGISTERED, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +typedef struct { + NMAuthManager *auth_mgr; + + /* Auth chains for checking agent permissions */ + GSList *chains; + + /* Hashed by owner name, not identifier, since two agents in different + * sessions can use the same identifier. + */ + GHashTable *agents; + + GHashTable *requests; +} NMAgentManagerPrivate; + +struct _NMAgentManager { + NMExportedObject parent; + NMAgentManagerPrivate _priv; +}; + +struct _NMAgentManagerClass { + NMExportedObjectClass parent; +}; + +G_DEFINE_TYPE (NMAgentManager, nm_agent_manager, NM_TYPE_EXPORTED_OBJECT) + +#define NM_AGENT_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMAgentManager, NM_IS_AGENT_MANAGER) + +/*****************************************************************************/ + +NM_DEFINE_SINGLETON_GETTER (NMAgentManager, nm_agent_manager_get, NM_TYPE_AGENT_MANAGER); + +/*****************************************************************************/ #define _NMLOG_PREFIX_NAME "agent-manager" #define _NMLOG_DOMAIN LOGD_AGENTS @@ -78,6 +118,24 @@ NM_DEFINE_SINGLETON_INSTANCE (NMAgentManager); "/\"", (req)->con.get.setting_name, "\"", \ ((req)->request_type == REQUEST_TYPE_CON_GET ? "/(none)" : _request_type_to_string ((req)->request_type, FALSE))) +/*****************************************************************************/ + +typedef struct _NMAgentManagerCallId Request; + +static void request_add_agent (Request *req, NMSecretAgent *agent); + +static void request_remove_agent (Request *req, NMSecretAgent *agent, GSList **pending_reqs); + +static void request_next_agent (Request *req); + +static void _con_get_request_start (Request *req); +static void _con_save_request_start (Request *req); +static void _con_del_request_start (Request *req); + +static gboolean _con_get_try_complete_early (Request *req); + +/*****************************************************************************/ + typedef enum { REQUEST_TYPE_INVALID, REQUEST_TYPE_CON_GET, @@ -96,49 +154,7 @@ _request_type_to_string (RequestType request_type, gboolean verbose) } } -G_DEFINE_TYPE (NMAgentManager, nm_agent_manager, NM_TYPE_EXPORTED_OBJECT) - -#define NM_AGENT_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ - NM_TYPE_AGENT_MANAGER, \ - NMAgentManagerPrivate)) - -typedef struct { - NMAuthManager *auth_mgr; - - /* Auth chains for checking agent permissions */ - GSList *chains; - - /* Hashed by owner name, not identifier, since two agents in different - * sessions can use the same identifier. - */ - GHashTable *agents; - - GHashTable *requests; -} NMAgentManagerPrivate; - -enum { - AGENT_REGISTERED, - - LAST_SIGNAL -}; -static guint signals[LAST_SIGNAL] = { 0 }; - - -typedef struct _NMAgentManagerCallId Request; - -static void request_add_agent (Request *req, NMSecretAgent *agent); - -static void request_remove_agent (Request *req, NMSecretAgent *agent, GSList **pending_reqs); - -static void request_next_agent (Request *req); - -static void _con_get_request_start (Request *req); -static void _con_save_request_start (Request *req); -static void _con_del_request_start (Request *req); - -static gboolean _con_get_try_complete_early (Request *req); - -/*************************************************************/ +/*****************************************************************************/ static gboolean remove_agent (NMAgentManager *self, const char *owner) @@ -186,7 +202,7 @@ maybe_remove_agent_on_error (NMSecretAgent *agent, remove_agent (nm_agent_manager_get (), nm_secret_agent_get_dbus_owner (agent)); } -/*************************************************************/ +/*****************************************************************************/ static gboolean validate_identifier (const char *identifier, GError **error) @@ -433,7 +449,7 @@ done: g_free (sender); } -/*************************************************************/ +/*****************************************************************************/ struct _NMAgentManagerCallId { NMAgentManager *self; @@ -582,7 +598,7 @@ req_complete_cancel (Request *req, gboolean is_disposing) gs_free_error GError *error = NULL; nm_assert (req && req->self); - nm_assert (!g_hash_table_contains (NM_AGENT_MANAGER_GET_PRIVATE (req->self)->requests, req)); + nm_assert (!g_hash_table_contains (req->self->_priv.requests, req)); nm_utils_error_set_cancelled (&error, is_disposing, "NMAgentManager"); req_complete_release (req, NULL, NULL, NULL, error); @@ -815,7 +831,7 @@ out: return FALSE; } -/*************************************************************/ +/*****************************************************************************/ static void _con_get_request_done (NMSecretAgent *agent, @@ -1263,7 +1279,7 @@ nm_agent_manager_cancel_secrets (NMAgentManager *self, req_complete_cancel (request_id, FALSE); } -/*************************************************************/ +/*****************************************************************************/ static void _con_save_request_done (NMSecretAgent *agent, @@ -1352,7 +1368,7 @@ nm_agent_manager_save_secrets (NMAgentManager *self, req->idle_id = g_idle_add (request_start, req); } -/*************************************************************/ +/*****************************************************************************/ static void _con_del_request_done (NMSecretAgent *agent, @@ -1440,7 +1456,7 @@ nm_agent_manager_delete_secrets (NMAgentManager *self, req->idle_id = g_idle_add (request_start, req); } -/*************************************************************/ +/*****************************************************************************/ NMSecretAgent * nm_agent_manager_get_agent_by_user (NMAgentManager *self, const char *username) @@ -1458,7 +1474,7 @@ nm_agent_manager_get_agent_by_user (NMAgentManager *self, const char *username) return NULL; } -/*************************************************************/ +/*****************************************************************************/ gboolean nm_agent_manager_all_agents_have_capability (NMAgentManager *manager, @@ -1484,7 +1500,7 @@ nm_agent_manager_all_agents_have_capability (NMAgentManager *manager, return TRUE; } -/*************************************************************/ +/*****************************************************************************/ static void agent_permissions_changed_done (NMAuthChain *chain, @@ -1548,9 +1564,7 @@ authority_changed_cb (NMAuthManager *auth_manager, NMAgentManager *self) } } -/*************************************************************/ - -NM_DEFINE_SINGLETON_GETTER (NMAgentManager, nm_agent_manager_get, NM_TYPE_AGENT_MANAGER); +/*****************************************************************************/ static void nm_agent_manager_init (NMAgentManager *self) @@ -1564,7 +1578,7 @@ nm_agent_manager_init (NMAgentManager *self) static void constructed (GObject *object) { - NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (object); + NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE ((NMAgentManager *) object); G_OBJECT_CLASS (nm_agent_manager_parent_class)->constructed (object); @@ -1583,7 +1597,7 @@ constructed (GObject *object) static void dispose (GObject *object) { - NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (object); + NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE ((NMAgentManager *) object); if (priv->requests) { GHashTableIter iter; @@ -1626,24 +1640,20 @@ nm_agent_manager_class_init (NMAgentManagerClass *agent_manager_class) GObjectClass *object_class = G_OBJECT_CLASS (agent_manager_class); NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (agent_manager_class); - g_type_class_add_private (agent_manager_class, sizeof (NMAgentManagerPrivate)); - exported_object_class->export_path = NM_DBUS_PATH_AGENT_MANAGER; - /* virtual methods */ object_class->constructed = constructed; object_class->dispose = dispose; - /* Signals */ signals[AGENT_REGISTERED] = - g_signal_new ("agent-registered", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMAgentManagerClass, agent_registered), - NULL, NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); + g_signal_new ("agent-registered", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + G_TYPE_OBJECT); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (agent_manager_class), NMDBUS_TYPE_AGENT_MANAGER_SKELETON, diff --git a/src/settings/nm-agent-manager.h b/src/settings/nm-agent-manager.h index 8240a2b513..7f8126935f 100644 --- a/src/settings/nm-agent-manager.h +++ b/src/settings/nm-agent-manager.h @@ -33,19 +33,9 @@ #define NM_IS_AGENT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_AGENT_MANAGER)) #define NM_AGENT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_AGENT_MANAGER, NMAgentManagerClass)) -struct _NMAgentManagerCallId; typedef struct _NMAgentManagerCallId *NMAgentManagerCallId; -struct _NMAgentManager { - NMExportedObject parent; -}; - -typedef struct { - NMExportedObjectClass parent; - - /* Signals */ - void (*agent_registered) (NMAgentManager *agent_mgr, NMSecretAgent *agent); -} NMAgentManagerClass; +typedef struct _NMAgentManagerClass NMAgentManagerClass; GType nm_agent_manager_get_type (void); diff --git a/src/settings/nm-inotify-helper.c b/src/settings/nm-inotify-helper.c index ce15246c5a..44a102b059 100644 --- a/src/settings/nm-inotify-helper.c +++ b/src/settings/nm-inotify-helper.c @@ -20,35 +20,51 @@ #include "nm-default.h" +#include "nm-inotify-helper.h" + #include <unistd.h> #include <string.h> #include <sys/inotify.h> #include <errno.h> -#include "nm-inotify-helper.h" #include "NetworkManagerUtils.h" /* NOTE: this code should be killed once we depend on a new enough glib to * include the patches from https://bugzilla.gnome.org/show_bug.cgi?id=532815 */ -G_DEFINE_TYPE (NMInotifyHelper, nm_inotify_helper, G_TYPE_OBJECT) +/*****************************************************************************/ -#define NM_INOTIFY_HELPER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_INOTIFY_HELPER, NMInotifyHelperPrivate)) +enum { + EVENT, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { int ifd; - GHashTable *wd_refs; } NMInotifyHelperPrivate; -/* Signals */ -enum { - EVENT, - LAST_SIGNAL +struct _NMInotifyHelper { + GObject parent; + NMInotifyHelperPrivate _priv; }; -static guint signals[LAST_SIGNAL] = { 0 }; +struct _NMInotifyHelperClass { + GObjectClass parent; +}; + +G_DEFINE_TYPE (NMInotifyHelper, nm_inotify_helper, G_TYPE_OBJECT) + +#define NM_INOTIFY_HELPER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMInotifyHelper, NM_IS_INOTIFY_HELPER) + +/*****************************************************************************/ + +NM_DEFINE_SINGLETON_GETTER (NMInotifyHelper, nm_inotify_helper_get, NM_TYPE_INOTIFY_HELPER); + +/*****************************************************************************/ int nm_inotify_helper_add_watch (NMInotifyHelper *self, const char *path) @@ -139,7 +155,7 @@ init_inotify (NMInotifyHelper *self) /* Watch the inotify descriptor for file/directory change events */ channel = g_io_channel_unix_new (priv->ifd); g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL); - g_io_channel_set_encoding (channel, NULL, NULL); + g_io_channel_set_encoding (channel, NULL, NULL); source_id = g_io_add_watch (channel, G_IO_IN | G_IO_ERR, @@ -149,7 +165,7 @@ init_inotify (NMInotifyHelper *self) return TRUE; } -NM_DEFINE_SINGLETON_GETTER (NMInotifyHelper, nm_inotify_helper_get, NM_TYPE_INOTIFY_HELPER); +/*****************************************************************************/ static void nm_inotify_helper_init (NMInotifyHelper *self) @@ -170,7 +186,7 @@ constructed (GObject *object) static void finalize (GObject *object) { - NMInotifyHelperPrivate *priv = NM_INOTIFY_HELPER_GET_PRIVATE (object); + NMInotifyHelperPrivate *priv = NM_INOTIFY_HELPER_GET_PRIVATE ((NMInotifyHelper *) object); if (priv->ifd >= 0) close (priv->ifd); @@ -185,19 +201,15 @@ nm_inotify_helper_class_init (NMInotifyHelperClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (klass, sizeof (NMInotifyHelperPrivate)); - - /* Virtual methods */ object_class->constructed = constructed; object_class->finalize = finalize; - /* Signals */ signals[EVENT] = - g_signal_new ("event", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMInotifyHelperClass, event), - NULL, NULL, NULL, - G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_STRING); + g_signal_new ("event", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_STRING); } diff --git a/src/settings/nm-inotify-helper.h b/src/settings/nm-inotify-helper.h index 2ac9376cd8..2715f3eec5 100644 --- a/src/settings/nm-inotify-helper.h +++ b/src/settings/nm-inotify-helper.h @@ -18,10 +18,8 @@ * (C) Copyright 2008 Red Hat, Inc. */ -#ifndef __INOTIFY_HELPER_H__ -#define __INOTIFY_HELPER_H__ - -#include <sys/inotify.h> +#ifndef __NM_INOTIFY_HELPER_H__ +#define __NM_INOTIFY_HELPER_H__ /* NOTE: this code should be killed once we depend on a new enough glib to * include the patches from https://bugzilla.gnome.org/show_bug.cgi?id=532815 @@ -34,16 +32,8 @@ #define NM_IS_INOTIFY_HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_INOTIFY_HELPER)) #define NM_INOTIFY_HELPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_INOTIFY_HELPER, NMInotifyHelperClass)) -typedef struct { - GObject parent; -} NMInotifyHelper; - -typedef struct { - GObjectClass parent; - - /* signals */ - void (* event) (NMInotifyHelper *helper, struct inotify_event *evt, const char *filename); -} NMInotifyHelperClass; +typedef struct _NMInotifyHelper NMInotifyHelper; +typedef struct _NMInotifyHelperClass NMInotifyHelperClass; GType nm_inotify_helper_get_type (void); @@ -53,4 +43,4 @@ int nm_inotify_helper_add_watch (NMInotifyHelper *helper, const char *path); void nm_inotify_helper_remove_watch (NMInotifyHelper *helper, int wd); -#endif /* __INOTIFY_HELPER_H__ */ +#endif /* __NM_INOTIFY_HELPER_H__ */ diff --git a/src/settings/nm-secret-agent.c b/src/settings/nm-secret-agent.c index 8bc88fd4d6..233bdaf29f 100644 --- a/src/settings/nm-secret-agent.c +++ b/src/settings/nm-secret-agent.c @@ -20,11 +20,12 @@ #include "nm-default.h" +#include "nm-secret-agent.h" + #include <sys/types.h> #include <pwd.h> #include "nm-dbus-interface.h" -#include "nm-secret-agent.h" #include "nm-bus-manager.h" #include "nm-auth-subject.h" #include "nm-simple-connection.h" @@ -32,31 +33,14 @@ #include "nmdbus-secret-agent.h" -#define _NMLOG_PREFIX_NAME "secret-agent" -#define _NMLOG_DOMAIN LOGD_AGENTS -#define _NMLOG(level, ...) \ - G_STMT_START { \ - if (nm_logging_enabled ((level), (_NMLOG_DOMAIN))) { \ - char __prefix[32]; \ - \ - if ((self)) \ - g_snprintf (__prefix, sizeof (__prefix), "%s[%p]", ""_NMLOG_PREFIX_NAME"", (self)); \ - else \ - g_strlcpy (__prefix, _NMLOG_PREFIX_NAME, sizeof (__prefix)); \ - _nm_log ((level), (_NMLOG_DOMAIN), 0, \ - "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ - } \ - } G_STMT_END - -#define LOG_REQ_FMT "req[%p,%s,%s%s%s%s]" -#define LOG_REQ_ARG(req) (req), (req)->dbus_command, NM_PRINT_FMT_QUOTE_STRING ((req)->path), ((req)->cancellable ? "" : " (cancelled)") +/*****************************************************************************/ -G_DEFINE_TYPE (NMSecretAgent, nm_secret_agent, G_TYPE_OBJECT) +enum { + DISCONNECTED, -#define NM_SECRET_AGENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ - NM_TYPE_SECRET_AGENT, \ - NMSecretAgentPrivate)) + LAST_SIGNAL +}; +static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { char *description; @@ -77,14 +61,42 @@ typedef struct { GHashTable *requests; } NMSecretAgentPrivate; -enum { - DISCONNECTED, +struct _NMSecretAgent { + GObject parent; + NMSecretAgentPrivate _priv; +}; - LAST_SIGNAL +struct _NMSecretAgentClass { + GObjectClass parent; }; -static guint signals[LAST_SIGNAL] = { 0 }; -/*************************************************************/ +G_DEFINE_TYPE (NMSecretAgent, nm_secret_agent, G_TYPE_OBJECT) + +#define NM_SECRET_AGENT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMSecretAgent, NM_IS_SECRET_AGENT) + +/*****************************************************************************/ + +#define _NMLOG_PREFIX_NAME "secret-agent" +#define _NMLOG_DOMAIN LOGD_AGENTS +#define _NMLOG(level, ...) \ + G_STMT_START { \ + if (nm_logging_enabled ((level), (_NMLOG_DOMAIN))) { \ + char __prefix[32]; \ + \ + if ((self)) \ + g_snprintf (__prefix, sizeof (__prefix), "%s[%p]", ""_NMLOG_PREFIX_NAME"", (self)); \ + else \ + g_strlcpy (__prefix, _NMLOG_PREFIX_NAME, sizeof (__prefix)); \ + _nm_log ((level), (_NMLOG_DOMAIN), 0, \ + "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } \ + } G_STMT_END + +#define LOG_REQ_FMT "req[%p,%s,%s%s%s%s]" +#define LOG_REQ_ARG(req) (req), (req)->dbus_command, NM_PRINT_FMT_QUOTE_STRING ((req)->path), ((req)->cancellable ? "" : " (cancelled)") + +/*****************************************************************************/ struct _NMSecretAgentCallId { NMSecretAgent *agent; @@ -153,7 +165,7 @@ request_check_return (Request *r) return TRUE; } -/*************************************************************/ +/*****************************************************************************/ static char * _create_description (const char *dbus_owner, const char *identifier, gulong uid) @@ -307,7 +319,7 @@ nm_secret_agent_has_permission (NMSecretAgent *agent, const char *permission) return FALSE; } -/*************************************************************/ +/*****************************************************************************/ static void get_callback (GObject *proxy, @@ -378,7 +390,7 @@ nm_secret_agent_get_secrets (NMSecretAgent *self, return r; } -/*************************************************************/ +/*****************************************************************************/ static void cancel_done (GObject *proxy, GAsyncResult *result, gpointer user_data) @@ -468,7 +480,7 @@ nm_secret_agent_cancel_secrets (NMSecretAgent *self, NMSecretAgentCallId call_id do_cancel_secrets (self, r, FALSE); } -/*************************************************************/ +/*****************************************************************************/ static void agent_save_cb (GObject *proxy, @@ -521,7 +533,7 @@ nm_secret_agent_save_secrets (NMSecretAgent *self, return r; } -/*************************************************************/ +/*****************************************************************************/ static void agent_delete_cb (GObject *proxy, @@ -574,7 +586,7 @@ nm_secret_agent_delete_secrets (NMSecretAgent *self, return r; } -/*************************************************************/ +/*****************************************************************************/ static void _on_disconnected_cleanup (NMSecretAgentPrivate *priv) @@ -640,7 +652,7 @@ _on_disconnected_name_owner_changed (GDBusConnection *connection, } } -/*************************************************************/ +/*****************************************************************************/ NMSecretAgent * nm_secret_agent_new (GDBusMethodInvocation *context, @@ -783,20 +795,16 @@ nm_secret_agent_class_init (NMSecretAgentClass *config_class) { GObjectClass *object_class = G_OBJECT_CLASS (config_class); - g_type_class_add_private (config_class, sizeof (NMSecretAgentPrivate)); - - /* virtual methods */ object_class->dispose = dispose; object_class->finalize = finalize; - /* signals */ signals[DISCONNECTED] = - g_signal_new (NM_SECRET_AGENT_DISCONNECTED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMSecretAgentClass, disconnected), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); + g_signal_new (NM_SECRET_AGENT_DISCONNECTED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); } diff --git a/src/settings/nm-secret-agent.h b/src/settings/nm-secret-agent.h index 916623a7d6..0b6da136a4 100644 --- a/src/settings/nm-secret-agent.h +++ b/src/settings/nm-secret-agent.h @@ -32,15 +32,7 @@ #define NM_SECRET_AGENT_DISCONNECTED "disconnected" -struct _NMSecretAgent { - GObject parent; -}; - -typedef struct { - GObjectClass parent; - - void (*disconnected) (NMSecretAgent *self); -} NMSecretAgentClass; +typedef struct _NMSecretAgentClass NMSecretAgentClass; typedef struct _NMSecretAgentCallId *NMSecretAgentCallId; diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c index f22807d341..d373cb3ce1 100644 --- a/src/settings/nm-settings-connection.c +++ b/src/settings/nm-settings-connection.c @@ -40,38 +40,10 @@ #define SETTINGS_TIMESTAMPS_FILE NMSTATEDIR "/timestamps" #define SETTINGS_SEEN_BSSIDS_FILE NMSTATEDIR "/seen-bssids" -#define _NMLOG_DOMAIN LOGD_SETTINGS -#define _NMLOG_PREFIX_NAME "settings-connection" -#define _NMLOG(level, ...) \ - G_STMT_START { \ - const NMLogLevel __level = (level); \ - \ - if (nm_logging_enabled (__level, _NMLOG_DOMAIN)) { \ - char __prefix[128]; \ - const char *__p_prefix = _NMLOG_PREFIX_NAME; \ - \ - if (self) { \ - const char *__uuid = nm_settings_connection_get_uuid (self); \ - \ - g_snprintf (__prefix, sizeof (__prefix), "%s[%p%s%s]", _NMLOG_PREFIX_NAME, self, __uuid ? "," : "", __uuid ? __uuid : ""); \ - __p_prefix = __prefix; \ - } \ - _nm_log (__level, _NMLOG_DOMAIN, 0, \ - "%s: " _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ - __p_prefix _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ - } \ - } G_STMT_END +/*****************************************************************************/ static void nm_settings_connection_connection_interface_init (NMConnectionInterface *iface); -G_DEFINE_TYPE_WITH_CODE (NMSettingsConnection, nm_settings_connection, NM_TYPE_EXPORTED_OBJECT, - G_IMPLEMENT_INTERFACE (NM_TYPE_CONNECTION, nm_settings_connection_connection_interface_init) - ) - -#define NM_SETTINGS_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ - NM_TYPE_SETTINGS_CONNECTION, \ - NMSettingsConnectionPrivate)) - NM_GOBJECT_PROPERTIES_DEFINE (NMSettingsConnection, PROP_VISIBLE, PROP_UNSAVED, @@ -86,9 +58,10 @@ enum { UPDATED_INTERNAL, LAST_SIGNAL }; + static guint signals[LAST_SIGNAL] = { 0 }; -typedef struct { +typedef struct _NMSettingsConnectionPrivate { gboolean removed; NMAgentManager *agent_mgr; @@ -127,10 +100,39 @@ typedef struct { NMDeviceStateReason autoconnect_blocked_reason; char *filename; - } NMSettingsConnectionPrivate; -/*******************************************************************/ +G_DEFINE_TYPE_WITH_CODE (NMSettingsConnection, nm_settings_connection, NM_TYPE_EXPORTED_OBJECT, + G_IMPLEMENT_INTERFACE (NM_TYPE_CONNECTION, nm_settings_connection_connection_interface_init) + ) + +#define NM_SETTINGS_CONNECTION_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR (self, NMSettingsConnection, NM_IS_SETTINGS_CONNECTION) + +/*****************************************************************************/ + +#define _NMLOG_DOMAIN LOGD_SETTINGS +#define _NMLOG_PREFIX_NAME "settings-connection" +#define _NMLOG(level, ...) \ + G_STMT_START { \ + const NMLogLevel __level = (level); \ + \ + if (nm_logging_enabled (__level, _NMLOG_DOMAIN)) { \ + char __prefix[128]; \ + const char *__p_prefix = _NMLOG_PREFIX_NAME; \ + \ + if (self) { \ + const char *__uuid = nm_settings_connection_get_uuid (self); \ + \ + g_snprintf (__prefix, sizeof (__prefix), "%s[%p%s%s]", _NMLOG_PREFIX_NAME, self, __uuid ? "," : "", __uuid ? __uuid : ""); \ + __p_prefix = __prefix; \ + } \ + _nm_log (__level, _NMLOG_DOMAIN, 0, \ + "%s: " _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ + __p_prefix _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ + } \ + } G_STMT_END + +/*****************************************************************************/ static void _emit_updated (NMSettingsConnection *self, gboolean by_user) @@ -139,7 +141,7 @@ _emit_updated (NMSettingsConnection *self, gboolean by_user) g_signal_emit (self, signals[UPDATED_INTERNAL], 0, by_user); } -/*******************************************************************/ +/*****************************************************************************/ gboolean nm_settings_connection_has_unmodified_applied_connection (NMSettingsConnection *self, @@ -155,7 +157,7 @@ nm_settings_connection_has_unmodified_applied_connection (NMSettingsConnection * return nm_connection_compare (NM_CONNECTION (self), applied_connection, compare_flags); } -/**************************************************************/ +/*****************************************************************************/ /* Return TRUE to keep, FALSE to drop */ typedef gboolean (*ForEachSecretFunc) (NMSettingSecretFlags flags, @@ -290,7 +292,7 @@ find_secret (NMConnection *self, return data.found; } -/**************************************************************/ +/*****************************************************************************/ static void set_visible (NMSettingsConnection *self, gboolean new_visible) @@ -357,7 +359,7 @@ session_changed_cb (NMSessionMonitor *self, gpointer user_data) nm_settings_connection_recheck_visibility (NM_SETTINGS_CONNECTION (user_data)); } -/**************************************************************/ +/*****************************************************************************/ /* Return TRUE if any active user in the connection's ACL has the given * permission without having to authorize for it via PolicyKit. Connections @@ -408,7 +410,7 @@ nm_settings_connection_check_permission (NMSettingsConnection *self, return FALSE; } -/**************************************************************/ +/*****************************************************************************/ static gboolean secrets_filter_cb (NMSetting *setting, @@ -759,7 +761,7 @@ do_delete (NMSettingsConnection *self, g_object_unref (self); } -/**************************************************************/ +/*****************************************************************************/ typedef enum { @@ -1933,7 +1935,7 @@ out_err: g_dbus_method_invocation_take_error (context, error); } -/**************************************************************/ +/*****************************************************************************/ static void dbus_get_agent_secrets_cb (NMSettingsConnection *self, @@ -2084,7 +2086,7 @@ impl_settings_connection_clear_secrets (NMSettingsConnection *self, } } -/**************************************************************/ +/*****************************************************************************/ void nm_settings_connection_signal_remove (NMSettingsConnection *self) @@ -2103,7 +2105,7 @@ nm_settings_connection_get_unsaved (NMSettingsConnection *self) return NM_FLAGS_HAS (nm_settings_connection_get_flags (self), NM_SETTINGS_CONNECTION_FLAGS_UNSAVED); } -/**************************************************************/ +/*****************************************************************************/ NMSettingsConnectionFlags nm_settings_connection_get_flags (NMSettingsConnection *self) @@ -2149,7 +2151,7 @@ nm_settings_connection_set_flags_all (NMSettingsConnection *self, NMSettingsConn return old_flags; } -/*************************************************************/ +/*****************************************************************************/ /** * nm_settings_connection_get_timestamp: @@ -2604,12 +2606,15 @@ nm_settings_connection_get_uuid (NMSettingsConnection *self) return nm_connection_get_uuid (NM_CONNECTION (self)); } -/**************************************************************/ +/*****************************************************************************/ static void nm_settings_connection_init (NMSettingsConnection *self) { - NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (self); + NMSettingsConnectionPrivate *priv; + + priv = G_TYPE_INSTANCE_GET_PRIVATE (self, NM_TYPE_SETTINGS_CONNECTION, NMSettingsConnectionPrivate); + self->_priv = priv; priv->visible = FALSE; priv->ready = TRUE; @@ -2748,7 +2753,6 @@ nm_settings_connection_class_init (NMSettingsConnectionClass *class) exported_object_class->export_path = NM_DBUS_PATH_SETTINGS "/%u"; - /* Virtual methods */ object_class->constructed = constructed; object_class->dispose = dispose; object_class->get_property = get_property; @@ -2759,7 +2763,6 @@ nm_settings_connection_class_init (NMSettingsConnectionClass *class) class->delete = do_delete; class->supports_secrets = supports_secrets; - /* Properties */ obj_properties[PROP_VISIBLE] = g_param_spec_boolean (NM_SETTINGS_CONNECTION_VISIBLE, "", "", FALSE, @@ -2794,7 +2797,6 @@ nm_settings_connection_class_init (NMSettingsConnectionClass *class) g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); - /* Signals */ signals[UPDATED] = g_signal_new (NM_SETTINGS_CONNECTION_UPDATED, diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h index 761203ead6..737ba7010b 100644 --- a/src/settings/nm-settings-connection.h +++ b/src/settings/nm-settings-connection.h @@ -95,8 +95,11 @@ typedef void (*NMSettingsConnectionDeleteFunc) (NMSettingsConnection *self, GError *error, gpointer user_data); +struct _NMSettingsConnectionPrivate; + struct _NMSettingsConnection { NMExportedObject parent; + struct _NMSettingsConnectionPrivate *_priv; }; struct _NMSettingsConnectionClass { diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c index 7ea7530a4c..06d261af86 100644 --- a/src/settings/nm-settings.c +++ b/src/settings/nm-settings.c @@ -74,23 +74,14 @@ #include "nm-audit-manager.h" #include "NetworkManagerUtils.h" #include "nm-dispatcher.h" +#include "nm-inotify-helper.h" #include "nmdbus-settings.h" -#define _NMLOG_DOMAIN LOGD_SETTINGS -#define _NMLOG_PREFIX_NAME "settings" -#define _NMLOG(level, ...) \ - G_STMT_START { \ - nm_log ((level), _NMLOG_DOMAIN, \ - "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - _NMLOG_PREFIX_NAME": " \ - _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ - } G_STMT_END +/*****************************************************************************/ -/* LINKER CRACKROCK */ #define EXPORT(sym) void * __export_##sym = &sym; -#include "nm-inotify-helper.h" EXPORT(nm_inotify_helper_get_type) EXPORT(nm_inotify_helper_get) EXPORT(nm_inotify_helper_add_watch) @@ -99,7 +90,8 @@ EXPORT(nm_inotify_helper_remove_watch) EXPORT(nm_settings_connection_get_type) EXPORT(nm_settings_connection_replace_settings) EXPORT(nm_settings_connection_replace_and_commit) -/* END LINKER CRACKROCK */ + +/*****************************************************************************/ #define HOSTNAMED_SERVICE_NAME "org.freedesktop.hostname1" #define HOSTNAMED_SERVICE_PATH "/org/freedesktop/hostname1" @@ -127,17 +119,27 @@ EXPORT(nm_settings_connection_replace_and_commit) #define HOSTNAME_FILE HOSTNAME_FILE_DEFAULT #endif -static void claim_connection (NMSettings *self, - NMSettingsConnection *connection); +/*****************************************************************************/ -static void unmanaged_specs_changed (NMSettingsPlugin *config, gpointer user_data); -static void unrecognized_specs_changed (NMSettingsPlugin *config, gpointer user_data); +NM_GOBJECT_PROPERTIES_DEFINE (NMSettings, + PROP_UNMANAGED_SPECS, + PROP_HOSTNAME, + PROP_CAN_MODIFY, + PROP_CONNECTIONS, + PROP_STARTUP_COMPLETE, +); -static void connection_ready_changed (NMSettingsConnection *conn, - GParamSpec *pspec, - gpointer user_data); +enum { + CONNECTION_ADDED, + CONNECTION_UPDATED, + CONNECTION_REMOVED, + CONNECTION_VISIBILITY_CHANGED, + AGENT_REGISTERED, + NEW_CONNECTION, /* exported, not used internally */ + LAST_SIGNAL +}; -G_DEFINE_TYPE (NMSettings, nm_settings, NM_TYPE_EXPORTED_OBJECT); +static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { NMAgentManager *agent_mgr; @@ -166,27 +168,44 @@ typedef struct { } hostname; } NMSettingsPrivate; -#define NM_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTINGS, NMSettingsPrivate)) - -enum { - CONNECTION_ADDED, - CONNECTION_UPDATED, - CONNECTION_REMOVED, - CONNECTION_VISIBILITY_CHANGED, - AGENT_REGISTERED, +struct _NMSettings { + NMExportedObject parent; + NMSettingsPrivate _priv; +}; - NEW_CONNECTION, /* exported, not used internally */ - LAST_SIGNAL +struct _NMSettingsClass { + NMExportedObjectClass parent; }; -static guint signals[LAST_SIGNAL] = { 0 }; -NM_GOBJECT_PROPERTIES_DEFINE (NMSettings, - PROP_UNMANAGED_SPECS, - PROP_HOSTNAME, - PROP_CAN_MODIFY, - PROP_CONNECTIONS, - PROP_STARTUP_COMPLETE, -); +G_DEFINE_TYPE (NMSettings, nm_settings, NM_TYPE_EXPORTED_OBJECT); + +#define NM_SETTINGS_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMSettings, NM_IS_SETTINGS) + +/*****************************************************************************/ + +#define _NMLOG_DOMAIN LOGD_SETTINGS +#define _NMLOG_PREFIX_NAME "settings" +#define _NMLOG(level, ...) \ + G_STMT_START { \ + nm_log ((level), _NMLOG_DOMAIN, \ + "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + _NMLOG_PREFIX_NAME": " \ + _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } G_STMT_END + +/*****************************************************************************/ + +static void claim_connection (NMSettings *self, + NMSettingsConnection *connection); + +static void unmanaged_specs_changed (NMSettingsPlugin *config, gpointer user_data); +static void unrecognized_specs_changed (NMSettingsPlugin *config, gpointer user_data); + +static void connection_ready_changed (NMSettingsConnection *conn, + GParamSpec *pspec, + gpointer user_data); + +/*****************************************************************************/ static void check_startup_complete (NMSettings *self) @@ -2069,7 +2088,7 @@ nm_settings_device_removed (NMSettings *self, NMDevice *device, gboolean quittin } } -/***************************************************************/ +/*****************************************************************************/ /* GCompareFunc helper for sorting "best" connections. * The function sorts connections in ascending timestamp order. @@ -2170,7 +2189,7 @@ nm_settings_get_best_connections (NMSettings *self, return g_slist_reverse (sorted); } -/***************************************************************/ +/*****************************************************************************/ gboolean nm_settings_get_startup_complete (NMSettings *self) @@ -2180,7 +2199,7 @@ nm_settings_get_startup_complete (NMSettings *self) return priv->startup_complete; } -/***************************************************************/ +/*****************************************************************************/ static void hostnamed_properties_changed (GDBusProxy *proxy, @@ -2265,22 +2284,6 @@ setup_hostname_file_monitors (NMSettings *self) hostname_maybe_changed (self); } -NMSettings * -nm_settings_new (void) -{ - NMSettings *self; - NMSettingsPrivate *priv; - - self = g_object_new (NM_TYPE_SETTINGS, NULL); - - priv = NM_SETTINGS_GET_PRIVATE (self); - - priv->config = nm_config_get (); - - nm_exported_object_export (NM_EXPORTED_OBJECT (self)); - return self; -} - gboolean nm_settings_start (NMSettings *self, GError **error) { @@ -2330,6 +2333,57 @@ nm_settings_start (NMSettings *self, GError **error) return TRUE; } +/*****************************************************************************/ + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NMSettings *self = NM_SETTINGS (object); + NMSettingsPrivate *priv = NM_SETTINGS_GET_PRIVATE (self); + const GSList *specs, *iter; + GHashTableIter citer; + GPtrArray *array; + const char *path; + + switch (prop_id) { + case PROP_UNMANAGED_SPECS: + array = g_ptr_array_new (); + specs = nm_settings_get_unmanaged_specs (self); + for (iter = specs; iter; iter = g_slist_next (iter)) + g_ptr_array_add (array, g_strdup (iter->data)); + g_ptr_array_add (array, NULL); + g_value_take_boxed (value, (char **) g_ptr_array_free (array, FALSE)); + break; + case PROP_HOSTNAME: + g_value_take_string (value, nm_settings_get_hostname (self)); + + /* Don't ever pass NULL through D-Bus */ + if (!g_value_get_string (value)) + g_value_set_static_string (value, ""); + break; + case PROP_CAN_MODIFY: + g_value_set_boolean (value, !!get_plugin (self, NM_SETTINGS_PLUGIN_CAP_MODIFY_CONNECTIONS)); + break; + case PROP_CONNECTIONS: + array = g_ptr_array_sized_new (g_hash_table_size (priv->connections) + 1); + g_hash_table_iter_init (&citer, priv->connections); + while (g_hash_table_iter_next (&citer, (gpointer) &path, NULL)) + g_ptr_array_add (array, g_strdup (path)); + g_ptr_array_add (array, NULL); + g_value_take_boxed (value, (char **) g_ptr_array_free (array, FALSE)); + break; + case PROP_STARTUP_COMPLETE: + g_value_set_boolean (value, nm_settings_get_startup_complete (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/*****************************************************************************/ + static void nm_settings_init (NMSettings *self) { @@ -2344,9 +2398,17 @@ nm_settings_init (NMSettings *self) */ priv->agent_mgr = g_object_ref (nm_agent_manager_get ()); + priv->config = g_object_ref (nm_config_get ()); + g_signal_connect (priv->agent_mgr, "agent-registered", G_CALLBACK (secret_agent_registered), self); } +NMSettings * +nm_settings_new (void) +{ + return g_object_new (NM_TYPE_SETTINGS, NULL); +} + static void dispose (GObject *object) { @@ -2401,54 +2463,9 @@ finalize (GObject *object) g_slist_free_full (priv->plugins, g_object_unref); - G_OBJECT_CLASS (nm_settings_parent_class)->finalize (object); -} - -static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - NMSettings *self = NM_SETTINGS (object); - NMSettingsPrivate *priv = NM_SETTINGS_GET_PRIVATE (self); - const GSList *specs, *iter; - GHashTableIter citer; - GPtrArray *array; - const char *path; + g_clear_object (&priv->config); - switch (prop_id) { - case PROP_UNMANAGED_SPECS: - array = g_ptr_array_new (); - specs = nm_settings_get_unmanaged_specs (self); - for (iter = specs; iter; iter = g_slist_next (iter)) - g_ptr_array_add (array, g_strdup (iter->data)); - g_ptr_array_add (array, NULL); - g_value_take_boxed (value, (char **) g_ptr_array_free (array, FALSE)); - break; - case PROP_HOSTNAME: - g_value_take_string (value, nm_settings_get_hostname (self)); - - /* Don't ever pass NULL through D-Bus */ - if (!g_value_get_string (value)) - g_value_set_static_string (value, ""); - break; - case PROP_CAN_MODIFY: - g_value_set_boolean (value, !!get_plugin (self, NM_SETTINGS_PLUGIN_CAP_MODIFY_CONNECTIONS)); - break; - case PROP_CONNECTIONS: - array = g_ptr_array_sized_new (g_hash_table_size (priv->connections) + 1); - g_hash_table_iter_init (&citer, priv->connections); - while (g_hash_table_iter_next (&citer, (gpointer) &path, NULL)) - g_ptr_array_add (array, g_strdup (path)); - g_ptr_array_add (array, NULL); - g_value_take_boxed (value, (char **) g_ptr_array_free (array, FALSE)); - break; - case PROP_STARTUP_COMPLETE: - g_value_set_boolean (value, nm_settings_get_startup_complete (self)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + G_OBJECT_CLASS (nm_settings_parent_class)->finalize (object); } static void @@ -2457,17 +2474,12 @@ nm_settings_class_init (NMSettingsClass *class) GObjectClass *object_class = G_OBJECT_CLASS (class); NMExportedObjectClass *exported_object_class = NM_EXPORTED_OBJECT_CLASS (class); - g_type_class_add_private (class, sizeof (NMSettingsPrivate)); - exported_object_class->export_path = NM_DBUS_PATH_SETTINGS; - /* virtual methods */ object_class->get_property = get_property; object_class->dispose = dispose; object_class->finalize = finalize; - /* properties */ - obj_properties[PROP_UNMANAGED_SPECS] = g_param_spec_boxed (NM_SETTINGS_UNMANAGED_SPECS, "", "", G_TYPE_STRV, @@ -2500,7 +2512,6 @@ nm_settings_class_init (NMSettingsClass *class) g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); - /* signals */ signals[CONNECTION_ADDED] = g_signal_new (NM_SETTINGS_SIGNAL_CONNECTION_ADDED, G_OBJECT_CLASS_TYPE (object_class), diff --git a/src/settings/nm-settings.h b/src/settings/nm-settings.h index a0be42eef3..c8a7ebae0c 100644 --- a/src/settings/nm-settings.h +++ b/src/settings/nm-settings.h @@ -61,13 +61,7 @@ typedef gboolean (*NMConnectionFilterFunc) (NMSettings *settings, NMConnection *connection, gpointer func_data); -struct _NMSettings { - NMExportedObject parent_instance; -}; - -typedef struct { - NMExportedObjectClass parent_class; -} NMSettingsClass; +typedef struct _NMSettingsClass NMSettingsClass; typedef void (*NMSettingsSetHostnameCb) (const char *name, gboolean result, gpointer user_data); diff --git a/src/settings/plugins/ibft/nm-ibft-connection.c b/src/settings/plugins/ibft/nm-ibft-connection.c index 95495b5cab..24cfdc19ad 100644 --- a/src/settings/plugins/ibft/nm-ibft-connection.c +++ b/src/settings/plugins/ibft/nm-ibft-connection.c @@ -20,17 +20,34 @@ #include "nm-default.h" +#include "nm-ibft-connection.h" + #include <string.h> #include <net/ethernet.h> #include <netinet/ether.h> - #include <glib/gstdio.h> -#include "nm-ibft-connection.h" #include "reader.h" +/*****************************************************************************/ + +struct _NMIbftConnection { + NMSettingsConnection parent; +}; + +struct _NMIbftConnectionClass { + NMSettingsConnectionClass parent; +}; + G_DEFINE_TYPE (NMIbftConnection, nm_ibft_connection, NM_TYPE_SETTINGS_CONNECTION) +/*****************************************************************************/ + +static void +nm_ibft_connection_init (NMIbftConnection *connection) +{ +} + NMIbftConnection * nm_ibft_connection_new (const GPtrArray *block, GError **error) { @@ -53,13 +70,6 @@ nm_ibft_connection_new (const GPtrArray *block, GError **error) return (NMIbftConnection *) object; } -/* GObject */ - -static void -nm_ibft_connection_init (NMIbftConnection *connection) -{ -} - static void nm_ibft_connection_class_init (NMIbftConnectionClass *ibft_connection_class) { diff --git a/src/settings/plugins/ibft/nm-ibft-connection.h b/src/settings/plugins/ibft/nm-ibft-connection.h index a4ee17ac7c..95494095be 100644 --- a/src/settings/plugins/ibft/nm-ibft-connection.h +++ b/src/settings/plugins/ibft/nm-ibft-connection.h @@ -30,13 +30,8 @@ #define NM_IS_IBFT_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_IBFT_CONNECTION)) #define NM_IBFT_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_IBFT_CONNECTION, NMIbftConnectionClass)) -typedef struct { - NMSettingsConnection parent; -} NMIbftConnection; - -typedef struct { - NMSettingsConnectionClass parent; -} NMIbftConnectionClass; +typedef struct _NMIbftConnection NMIbftConnection; +typedef struct _NMIbftConnectionClass NMIbftConnectionClass; GType nm_ibft_connection_get_type (void); diff --git a/src/settings/plugins/ibft/plugin.c b/src/settings/plugins/ibft/plugin.c index 6f9b8c82c9..c663e36110 100644 --- a/src/settings/plugins/ibft/plugin.c +++ b/src/settings/plugins/ibft/plugin.c @@ -20,38 +20,52 @@ #include "nm-default.h" +#include "plugin.h" + #include <string.h> #include <unistd.h> #include <errno.h> - #include <gmodule.h> #include "nm-setting-connection.h" - #include "nm-settings-plugin.h" #include "NetworkManagerUtils.h" -#include "plugin.h" #include "reader.h" #include "nm-ibft-connection.h" +/*****************************************************************************/ + +typedef struct { + GHashTable *connections; /* uuid::connection */ + gboolean initialized; +} SettingsPluginIbftPrivate; + +struct _SettingsPluginIbft { + GObject parent; + SettingsPluginIbftPrivate _priv; +}; + +struct _SettingsPluginIbftClass { + GObjectClass parent; +}; + static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface); G_DEFINE_TYPE_EXTENDED (SettingsPluginIbft, settings_plugin_ibft, G_TYPE_OBJECT, 0, G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN, settings_plugin_interface_init)) -#define SETTINGS_PLUGIN_IBFT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SETTINGS_TYPE_PLUGIN_IBFT, SettingsPluginIbftPrivate)) +#define SETTINGS_PLUGIN_IBFT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, SettingsPluginIbft, SETTINGS_IS_PLUGIN_IBFT) - -typedef struct { - GHashTable *connections; /* uuid::connection */ - gboolean initialized; -} SettingsPluginIbftPrivate; +/*****************************************************************************/ static SettingsPluginIbft *settings_plugin_ibft_get (void); + NM_DEFINE_SINGLETON_GETTER (SettingsPluginIbft, settings_plugin_ibft_get, SETTINGS_TYPE_PLUGIN_IBFT); +/*****************************************************************************/ + static void read_connections (SettingsPluginIbft *self) { @@ -104,6 +118,30 @@ get_connections (NMSettingsPlugin *config) return list; } +/*****************************************************************************/ + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + switch (prop_id) { + case NM_SETTINGS_PLUGIN_PROP_NAME: + g_value_set_string (value, "iBFT"); + break; + case NM_SETTINGS_PLUGIN_PROP_INFO: + g_value_set_string (value, "(c) 2014 Red Hat, Inc. To report bugs please use the NetworkManager mailing list."); + break; + case NM_SETTINGS_PLUGIN_PROP_CAPABILITIES: + g_value_set_uint (value, NM_SETTINGS_PLUGIN_CAP_NONE); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/*****************************************************************************/ + static void init (NMSettingsPlugin *config) { @@ -132,42 +170,12 @@ dispose (GObject *object) } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - switch (prop_id) { - case NM_SETTINGS_PLUGIN_PROP_NAME: - g_value_set_string (value, "iBFT"); - break; - case NM_SETTINGS_PLUGIN_PROP_INFO: - g_value_set_string (value, "(c) 2014 Red Hat, Inc. To report bugs please use the NetworkManager mailing list."); - break; - case NM_SETTINGS_PLUGIN_PROP_CAPABILITIES: - g_value_set_uint (value, NM_SETTINGS_PLUGIN_CAP_NONE); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); -} - -static void settings_plugin_ibft_class_init (SettingsPluginIbftClass *req_class) { GObjectClass *object_class = G_OBJECT_CLASS (req_class); - g_type_class_add_private (req_class, sizeof (SettingsPluginIbftPrivate)); - object_class->dispose = dispose; object_class->get_property = get_property; - object_class->set_property = set_property; g_object_class_override_property (object_class, NM_SETTINGS_PLUGIN_PROP_NAME, @@ -185,11 +193,12 @@ settings_plugin_ibft_class_init (SettingsPluginIbftClass *req_class) static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface) { - /* interface implementation */ plugin_iface->get_connections = get_connections; plugin_iface->init = init; } +/*****************************************************************************/ + G_MODULE_EXPORT GObject * nm_settings_plugin_factory (void) { diff --git a/src/settings/plugins/ibft/plugin.h b/src/settings/plugins/ibft/plugin.h index 4867e07daa..5c44a1c950 100644 --- a/src/settings/plugins/ibft/plugin.h +++ b/src/settings/plugins/ibft/plugin.h @@ -31,15 +31,7 @@ typedef struct _SettingsPluginIbft SettingsPluginIbft; typedef struct _SettingsPluginIbftClass SettingsPluginIbftClass; -struct _SettingsPluginIbft { - GObject parent; -}; - -struct _SettingsPluginIbftClass { - GObjectClass parent; -}; - GType settings_plugin_ibft_get_type (void); -#endif /* _PLUGIN_H_ */ +#endif /* _PLUGIN_H_ */ diff --git a/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c b/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c index 184e95b2aa..09c585a9da 100644 --- a/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c +++ b/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c @@ -23,7 +23,7 @@ #include "nm-ifcfg-connection.h" #include <string.h> - +#include <sys/inotify.h> #include <glib/gstdio.h> #include "nm-dbus-interface.h" @@ -44,9 +44,19 @@ #include "nm-inotify-helper.h" #include "utils.h" -G_DEFINE_TYPE (NMIfcfgConnection, nm_ifcfg_connection, NM_TYPE_SETTINGS_CONNECTION) +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_UNMANAGED_SPEC, + PROP_UNRECOGNIZED_SPEC, +); -#define NM_IFCFG_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_IFCFG_CONNECTION, NMIfcfgConnectionPrivate)) +enum { + IFCFG_CHANGED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { gulong ih_event_id; @@ -71,20 +81,20 @@ typedef struct { NMInotifyHelper *inotify_helper; } NMIfcfgConnectionPrivate; -enum { - PROP_0, - PROP_UNMANAGED_SPEC, - PROP_UNRECOGNIZED_SPEC, - LAST_PROP +struct _NMIfcfgConnection { + NMSettingsConnection parent; + NMIfcfgConnectionPrivate _priv; }; -/* Signals */ -enum { - IFCFG_CHANGED, - LAST_SIGNAL +struct _NMIfcfgConnectionClass { + NMSettingsConnectionClass parent; }; -static guint signals[LAST_SIGNAL] = { 0 }; +G_DEFINE_TYPE (NMIfcfgConnection, nm_ifcfg_connection, NM_TYPE_SETTINGS_CONNECTION) + +#define NM_IFCFG_CONNECTION_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMIfcfgConnection, NM_IS_IFCFG_CONNECTION) + +/*****************************************************************************/ static NMInotifyHelper * _get_inotify_helper (NMIfcfgConnectionPrivate *priv) @@ -110,7 +120,7 @@ link_changed (NMPlatform *platform, NMPObjectType *obj_type, int ifindex, const NMPlatformSignalChangeType change_type, NMConnection *self) { - NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (self); + NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE ((NMIfcfgConnection *) self); const char *ifname; ifname = nm_connection_get_interface_name (self); @@ -211,63 +221,6 @@ files_changed_cb (NMInotifyHelper *ih, g_signal_emit (self, signals[IFCFG_CHANGED], 0); } -NMIfcfgConnection * -nm_ifcfg_connection_new (NMConnection *source, - const char *full_path, - GError **error, - gboolean *out_ignore_error) -{ - GObject *object; - NMConnection *tmp; - char *unhandled_spec = NULL; - const char *unmanaged_spec = NULL, *unrecognized_spec = NULL; - gboolean update_unsaved = TRUE; - - g_assert (source || full_path); - - if (out_ignore_error) - *out_ignore_error = FALSE; - - /* If we're given a connection already, prefer that instead of re-reading */ - if (source) - tmp = g_object_ref (source); - else { - tmp = connection_from_file (full_path, - &unhandled_spec, - error, - out_ignore_error); - if (!tmp) - return NULL; - - /* If we just read the connection from disk, it's clearly not Unsaved */ - update_unsaved = FALSE; - } - - if (unhandled_spec && g_str_has_prefix (unhandled_spec, "unmanaged:")) - unmanaged_spec = unhandled_spec + strlen ("unmanaged:"); - else if (unhandled_spec && g_str_has_prefix (unhandled_spec, "unrecognized:")) - unrecognized_spec = unhandled_spec + strlen ("unrecognized:"); - - object = (GObject *) g_object_new (NM_TYPE_IFCFG_CONNECTION, - NM_SETTINGS_CONNECTION_FILENAME, full_path, - NM_IFCFG_CONNECTION_UNMANAGED_SPEC, unmanaged_spec, - NM_IFCFG_CONNECTION_UNRECOGNIZED_SPEC, unrecognized_spec, - NULL); - /* Update our settings with what was read from the file */ - if (nm_settings_connection_replace_settings (NM_SETTINGS_CONNECTION (object), - tmp, - update_unsaved, - NULL, - error)) - nm_ifcfg_connection_check_devtimeout (NM_IFCFG_CONNECTION (object)); - else - g_clear_object (&object); - - g_object_unref (tmp); - g_free (unhandled_spec); - return (NMIfcfgConnection *) object; -} - static void path_watch_stop (NMIfcfgConnection *self) { @@ -382,7 +335,7 @@ commit_changes (NMSettingsConnection *connection, NMSettingsConnectionCommitFunc callback, gpointer user_data) { - NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (connection); + NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE ((NMIfcfgConnection *) connection); GError *error = NULL; NMConnection *reread; gboolean same = FALSE, success = FALSE; @@ -444,7 +397,7 @@ do_delete (NMSettingsConnection *connection, NMSettingsConnectionDeleteFunc callback, gpointer user_data) { - NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (connection); + NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE ((NMIfcfgConnection *) connection); const char *filename; filename = nm_settings_connection_get_filename (connection); @@ -461,27 +414,20 @@ do_delete (NMSettingsConnection *connection, NM_SETTINGS_CONNECTION_CLASS (nm_ifcfg_connection_parent_class)->delete (connection, callback, user_data); } -/* GObject */ +/*****************************************************************************/ static void -nm_ifcfg_connection_init (NMIfcfgConnection *connection) -{ - g_signal_connect (connection, "notify::" NM_SETTINGS_CONNECTION_FILENAME, - G_CALLBACK (filename_changed), NULL); -} - -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) { - NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (object); + NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE ((NMIfcfgConnection *) object); switch (prop_id) { case PROP_UNMANAGED_SPEC: - priv->unmanaged_spec = g_value_dup_string (value); + g_value_set_string (value, priv->unmanaged_spec); break; case PROP_UNRECOGNIZED_SPEC: - priv->unrecognized_spec = g_value_dup_string (value); + g_value_set_string (value, priv->unrecognized_spec); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -490,17 +436,17 @@ set_property (GObject *object, guint prop_id, } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) { - NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (object); + NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE ((NMIfcfgConnection *) object); switch (prop_id) { case PROP_UNMANAGED_SPEC: - g_value_set_string (value, priv->unmanaged_spec); + priv->unmanaged_spec = g_value_dup_string (value); break; case PROP_UNRECOGNIZED_SPEC: - g_value_set_string (value, priv->unrecognized_spec); + priv->unrecognized_spec = g_value_dup_string (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -508,10 +454,76 @@ get_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + +static void +nm_ifcfg_connection_init (NMIfcfgConnection *connection) +{ + g_signal_connect (connection, "notify::" NM_SETTINGS_CONNECTION_FILENAME, + G_CALLBACK (filename_changed), NULL); +} + +NMIfcfgConnection * +nm_ifcfg_connection_new (NMConnection *source, + const char *full_path, + GError **error, + gboolean *out_ignore_error) +{ + GObject *object; + NMConnection *tmp; + char *unhandled_spec = NULL; + const char *unmanaged_spec = NULL, *unrecognized_spec = NULL; + gboolean update_unsaved = TRUE; + + g_assert (source || full_path); + + if (out_ignore_error) + *out_ignore_error = FALSE; + + /* If we're given a connection already, prefer that instead of re-reading */ + if (source) + tmp = g_object_ref (source); + else { + tmp = connection_from_file (full_path, + &unhandled_spec, + error, + out_ignore_error); + if (!tmp) + return NULL; + + /* If we just read the connection from disk, it's clearly not Unsaved */ + update_unsaved = FALSE; + } + + if (unhandled_spec && g_str_has_prefix (unhandled_spec, "unmanaged:")) + unmanaged_spec = unhandled_spec + strlen ("unmanaged:"); + else if (unhandled_spec && g_str_has_prefix (unhandled_spec, "unrecognized:")) + unrecognized_spec = unhandled_spec + strlen ("unrecognized:"); + + object = (GObject *) g_object_new (NM_TYPE_IFCFG_CONNECTION, + NM_SETTINGS_CONNECTION_FILENAME, full_path, + NM_IFCFG_CONNECTION_UNMANAGED_SPEC, unmanaged_spec, + NM_IFCFG_CONNECTION_UNRECOGNIZED_SPEC, unrecognized_spec, + NULL); + /* Update our settings with what was read from the file */ + if (nm_settings_connection_replace_settings (NM_SETTINGS_CONNECTION (object), + tmp, + update_unsaved, + NULL, + error)) + nm_ifcfg_connection_check_devtimeout (NM_IFCFG_CONNECTION (object)); + else + g_clear_object (&object); + + g_object_unref (tmp); + g_free (unhandled_spec); + return (NMIfcfgConnection *) object; +} + static void dispose (GObject *object) { - NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (object); + NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE ((NMIfcfgConnection *) object); path_watch_stop (NM_IFCFG_CONNECTION (object)); @@ -532,36 +544,34 @@ nm_ifcfg_connection_class_init (NMIfcfgConnectionClass *ifcfg_connection_class) GObjectClass *object_class = G_OBJECT_CLASS (ifcfg_connection_class); NMSettingsConnectionClass *settings_class = NM_SETTINGS_CONNECTION_CLASS (ifcfg_connection_class); - g_type_class_add_private (ifcfg_connection_class, sizeof (NMIfcfgConnectionPrivate)); - - /* Virtual methods */ object_class->set_property = set_property; object_class->get_property = get_property; object_class->dispose = dispose; + settings_class->delete = do_delete; settings_class->replace_and_commit = replace_and_commit; settings_class->commit_changes = commit_changes; - /* Properties */ - g_object_class_install_property - (object_class, PROP_UNMANAGED_SPEC, - g_param_spec_string (NM_IFCFG_CONNECTION_UNMANAGED_SPEC, "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); - g_object_class_install_property - (object_class, PROP_UNRECOGNIZED_SPEC, - g_param_spec_string (NM_IFCFG_CONNECTION_UNRECOGNIZED_SPEC, "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_UNMANAGED_SPEC] = + g_param_spec_string (NM_IFCFG_CONNECTION_UNMANAGED_SPEC, "", "", + NULL, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); + + obj_properties[PROP_UNRECOGNIZED_SPEC] = + g_param_spec_string (NM_IFCFG_CONNECTION_UNRECOGNIZED_SPEC, "", "", + NULL, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); signals[IFCFG_CHANGED] = - g_signal_new ("ifcfg-changed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - 0, NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); + g_signal_new ("ifcfg-changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); } diff --git a/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.h b/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.h index 57db059b00..c706d2a20a 100644 --- a/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.h +++ b/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.h @@ -34,13 +34,8 @@ #define NM_IFCFG_CONNECTION_UNMANAGED_SPEC "unmanaged-spec" #define NM_IFCFG_CONNECTION_UNRECOGNIZED_SPEC "unrecognized-spec" -typedef struct { - NMSettingsConnection parent; -} NMIfcfgConnection; - -typedef struct { - NMSettingsConnectionClass parent; -} NMIfcfgConnectionClass; +typedef struct _NMIfcfgConnection NMIfcfgConnection; +typedef struct _NMIfcfgConnectionClass NMIfcfgConnectionClass; GType nm_ifcfg_connection_get_type (void); diff --git a/src/settings/plugins/ifcfg-rh/plugin.c b/src/settings/plugins/ifcfg-rh/plugin.c index c2956d22b7..77bd32499f 100644 --- a/src/settings/plugins/ifcfg-rh/plugin.c +++ b/src/settings/plugins/ifcfg-rh/plugin.c @@ -30,15 +30,14 @@ #include <errno.h> #include <sys/types.h> #include <sys/stat.h> - #include <gmodule.h> #include "nm-dbus-compat.h" #include "nm-setting-connection.h" - #include "nm-settings-plugin.h" #include "nm-config.h" #include "NetworkManagerUtils.h" +#include "nm-exported-object.h" #include "nm-ifcfg-connection.h" #include "shvar.h" @@ -46,39 +45,13 @@ #include "reader.h" #include "writer.h" #include "utils.h" -#include "nm-exported-object.h" #include "nmdbus-ifcfg-rh.h" #define IFCFGRH1_DBUS_SERVICE_NAME "com.redhat.ifcfgrh1" #define IFCFGRH1_DBUS_OBJECT_PATH "/com/redhat/ifcfgrh1" -#define _NMLOG_DOMAIN LOGD_SETTINGS -#define _NMLOG(level, ...) \ - G_STMT_START { \ - nm_log ((level), (_NMLOG_DOMAIN), \ - "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - "ifcfg-rh: " \ - _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ - } G_STMT_END - - -static NMIfcfgConnection *update_connection (SettingsPluginIfcfg *plugin, - NMConnection *source, - const char *full_path, - NMIfcfgConnection *connection, - gboolean protect_existing_connection, - GHashTable *protected_connections, - GError **error); - -static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface); - -G_DEFINE_TYPE_EXTENDED (SettingsPluginIfcfg, settings_plugin_ifcfg, G_TYPE_OBJECT, 0, - G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN, - settings_plugin_interface_init)) - -#define SETTINGS_PLUGIN_IFCFG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SETTINGS_TYPE_PLUGIN_IFCFG, SettingsPluginIfcfgPrivate)) - +/*****************************************************************************/ typedef struct { NMConfig *config; @@ -97,9 +70,52 @@ typedef struct { gulong ifcfg_monitor_id; } SettingsPluginIfcfgPrivate; +struct _SettingsPluginIfcfg { + GObject parent; + SettingsPluginIfcfgPrivate _priv; +}; + +struct _SettingsPluginIfcfgClass { + GObjectClass parent; +}; + +static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface); + +G_DEFINE_TYPE_EXTENDED (SettingsPluginIfcfg, settings_plugin_ifcfg, G_TYPE_OBJECT, 0, + G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN, + settings_plugin_interface_init)) + +#define SETTINGS_PLUGIN_IFCFG_GET_PRIVATE(self) _NM_GET_PRIVATE (self, SettingsPluginIfcfg, SETTINGS_IS_PLUGIN_IFCFG) + +/*****************************************************************************/ + static SettingsPluginIfcfg *settings_plugin_ifcfg_get (void); + NM_DEFINE_SINGLETON_GETTER (SettingsPluginIfcfg, settings_plugin_ifcfg_get, SETTINGS_TYPE_PLUGIN_IFCFG); +/*****************************************************************************/ + +#define _NMLOG_DOMAIN LOGD_SETTINGS +#define _NMLOG(level, ...) \ + G_STMT_START { \ + nm_log ((level), (_NMLOG_DOMAIN), \ + "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + "ifcfg-rh: " \ + _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } G_STMT_END + +/*****************************************************************************/ + +static NMIfcfgConnection *update_connection (SettingsPluginIfcfg *plugin, + NMConnection *source, + const char *full_path, + NMIfcfgConnection *connection, + gboolean protect_existing_connection, + GHashTable *protected_connections, + GError **error); + +/*****************************************************************************/ + static void connection_ifcfg_changed (NMIfcfgConnection *connection, gpointer user_data) { @@ -124,7 +140,7 @@ connection_ifcfg_changed (NMIfcfgConnection *connection, gpointer user_data) static void connection_removed_cb (NMSettingsConnection *obj, gpointer user_data) { - g_hash_table_remove (SETTINGS_PLUGIN_IFCFG_GET_PRIVATE (user_data)->connections, + g_hash_table_remove (SETTINGS_PLUGIN_IFCFG_GET_PRIVATE ((SettingsPluginIfcfg *) user_data)->connections, nm_connection_get_uuid (NM_CONNECTION (obj))); } @@ -616,7 +632,7 @@ static GSList * get_unhandled_specs (NMSettingsPlugin *config, const char *property) { - SettingsPluginIfcfgPrivate *priv = SETTINGS_PLUGIN_IFCFG_GET_PRIVATE (config); + SettingsPluginIfcfgPrivate *priv = SETTINGS_PLUGIN_IFCFG_GET_PRIVATE ((SettingsPluginIfcfg *) config); GSList *list = NULL, *list_iter; GHashTableIter iter; gpointer connection; @@ -944,6 +960,28 @@ config_changed_cb (NMConfig *config, /*****************************************************************************/ static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + switch (prop_id) { + case NM_SETTINGS_PLUGIN_PROP_NAME: + g_value_set_string (value, IFCFG_PLUGIN_NAME); + break; + case NM_SETTINGS_PLUGIN_PROP_INFO: + g_value_set_string (value, IFCFG_PLUGIN_INFO); + break; + case NM_SETTINGS_PLUGIN_PROP_CAPABILITIES: + g_value_set_uint (value, NM_SETTINGS_PLUGIN_CAP_MODIFY_CONNECTIONS); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/*****************************************************************************/ + +static void init (NMSettingsPlugin *config) { } @@ -951,7 +989,7 @@ init (NMSettingsPlugin *config) static void settings_plugin_ifcfg_init (SettingsPluginIfcfg *plugin) { - SettingsPluginIfcfgPrivate *priv = SETTINGS_PLUGIN_IFCFG_GET_PRIVATE (plugin); + SettingsPluginIfcfgPrivate *priv = SETTINGS_PLUGIN_IFCFG_GET_PRIVATE ((SettingsPluginIfcfg *) plugin); priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); } @@ -1005,47 +1043,13 @@ dispose (GObject *object) } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) -{ - switch (prop_id) { - case NM_SETTINGS_PLUGIN_PROP_NAME: - g_value_set_string (value, IFCFG_PLUGIN_NAME); - break; - case NM_SETTINGS_PLUGIN_PROP_INFO: - g_value_set_string (value, IFCFG_PLUGIN_INFO); - break; - case NM_SETTINGS_PLUGIN_PROP_CAPABILITIES: - g_value_set_uint (value, NM_SETTINGS_PLUGIN_CAP_MODIFY_CONNECTIONS); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - switch (prop_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void settings_plugin_ifcfg_class_init (SettingsPluginIfcfgClass *req_class) { GObjectClass *object_class = G_OBJECT_CLASS (req_class); - g_type_class_add_private (req_class, sizeof (SettingsPluginIfcfgPrivate)); - object_class->constructed = constructed; object_class->dispose = dispose; object_class->get_property = get_property; - object_class->set_property = set_property; g_object_class_override_property (object_class, NM_SETTINGS_PLUGIN_PROP_NAME, @@ -1063,7 +1067,6 @@ settings_plugin_ifcfg_class_init (SettingsPluginIfcfgClass *req_class) static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface) { - /* interface implementation */ plugin_iface->get_connections = get_connections; plugin_iface->add_connection = add_connection; plugin_iface->load_connection = load_connection; @@ -1073,6 +1076,8 @@ settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface) plugin_iface->init = init; } +/*****************************************************************************/ + G_MODULE_EXPORT GObject * nm_settings_plugin_factory (void) { diff --git a/src/settings/plugins/ifcfg-rh/plugin.h b/src/settings/plugins/ifcfg-rh/plugin.h index 74c4b00a04..d815cc5160 100644 --- a/src/settings/plugins/ifcfg-rh/plugin.h +++ b/src/settings/plugins/ifcfg-rh/plugin.h @@ -34,15 +34,6 @@ typedef struct _SettingsPluginIfcfg SettingsPluginIfcfg; typedef struct _SettingsPluginIfcfgClass SettingsPluginIfcfgClass; -struct _SettingsPluginIfcfg { - GObject parent; -}; - -struct _SettingsPluginIfcfgClass { - GObjectClass parent; -}; - GType settings_plugin_ifcfg_get_type (void); #endif /* _PLUGIN_H_ */ - diff --git a/src/settings/plugins/ifnet/nm-ifnet-connection.c b/src/settings/plugins/ifnet/nm-ifnet-connection.c index b661b03efb..66a2f84893 100644 --- a/src/settings/plugins/ifnet/nm-ifnet-connection.c +++ b/src/settings/plugins/ifnet/nm-ifnet-connection.c @@ -21,6 +21,8 @@ #include "nm-default.h" +#include "nm-ifnet-connection.h" + #include <string.h> #include <glib/gstdio.h> @@ -29,16 +31,14 @@ #include "nm-setting-wireless-security.h" #include "nm-settings-connection.h" #include "nm-settings-plugin.h" -#include "nm-ifnet-connection.h" + #include "connection_parser.h" #include "net_parser.h" #include "net_utils.h" #include "wpa_parser.h" #include "plugin.h" -G_DEFINE_TYPE (NMIfnetConnection, nm_ifnet_connection, NM_TYPE_SETTINGS_CONNECTION) - -#define NM_IFNET_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_IFNET_CONNECTION, NMIfnetConnectionPrivate)) +/*****************************************************************************/ enum { IFNET_SETUP_MONITORS, @@ -53,51 +53,20 @@ typedef struct { NMSettingsPlugin *config; } NMIfnetConnectionPrivate; -NMIfnetConnection * -nm_ifnet_connection_new (NMConnection *source, const char *conn_name) -{ - NMConnection *tmp; - GObject *object; - GError *error = NULL; - gboolean update_unsaved = TRUE; - - g_return_val_if_fail (source || conn_name, NULL); - - if (source) - tmp = g_object_ref (source); - else { - tmp = ifnet_update_connection_from_config_block (conn_name, NULL, &error); - if (!tmp) { - nm_log_warn (LOGD_SETTINGS, "Could not read connection '%s': %s", - conn_name, error->message); - g_error_free (error); - return NULL; - } +struct _NMIfnetConnection { + NMSettingsConnection parent; + NMIfnetConnectionPrivate _priv; +}; - /* If we just read the connection from disk, it's clearly not Unsaved */ - update_unsaved = FALSE; - } +struct _NMIfnetConnectionClass { + NMSettingsConnectionClass parent; +}; - object = (GObject *) g_object_new (NM_TYPE_IFNET_CONNECTION, NULL); - g_assert (object); - NM_IFNET_CONNECTION_GET_PRIVATE (object)->conn_name = g_strdup (conn_name); - if (!nm_settings_connection_replace_settings (NM_SETTINGS_CONNECTION (object), - tmp, - update_unsaved, - NULL, - NULL)) { - g_object_unref (object); - return NULL; - } - g_object_unref (tmp); +G_DEFINE_TYPE (NMIfnetConnection, nm_ifnet_connection, NM_TYPE_SETTINGS_CONNECTION) - return NM_IFNET_CONNECTION (object); -} +#define NM_IFNET_CONNECTION_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMIfnetConnection, NM_IS_IFNET_CONNECTION) -static void -nm_ifnet_connection_init (NMIfnetConnection * connection) -{ -} +/*****************************************************************************/ const char * nm_ifnet_connection_get_conn_name (NMIfnetConnection *connection) @@ -112,7 +81,7 @@ commit_changes (NMSettingsConnection *connection, gpointer user_data) { GError *error = NULL; - NMIfnetConnectionPrivate *priv = NM_IFNET_CONNECTION_GET_PRIVATE (connection); + NMIfnetConnectionPrivate *priv = NM_IFNET_CONNECTION_GET_PRIVATE ((NMIfnetConnection *) connection); gchar *new_name = NULL; gboolean success = FALSE; @@ -159,13 +128,13 @@ commit_changes (NMSettingsConnection *connection, g_signal_emit (connection, signals[IFNET_SETUP_MONITORS], 0); } -static void +static void do_delete (NMSettingsConnection *connection, - NMSettingsConnectionDeleteFunc callback, - gpointer user_data) + NMSettingsConnectionDeleteFunc callback, + gpointer user_data) { GError *error = NULL; - NMIfnetConnectionPrivate *priv = NM_IFNET_CONNECTION_GET_PRIVATE (connection); + NMIfnetConnectionPrivate *priv = NM_IFNET_CONNECTION_GET_PRIVATE ((NMIfnetConnection *) connection); g_signal_emit (connection, signals[IFNET_CANCEL_MONITORS], 0); @@ -190,10 +159,58 @@ do_delete (NMSettingsConnection *connection, nm_connection_get_id (NM_CONNECTION (connection))); } +/*****************************************************************************/ + +static void +nm_ifnet_connection_init (NMIfnetConnection * connection) +{ +} + +NMIfnetConnection * +nm_ifnet_connection_new (NMConnection *source, const char *conn_name) +{ + NMConnection *tmp; + GObject *object; + GError *error = NULL; + gboolean update_unsaved = TRUE; + + g_return_val_if_fail (source || conn_name, NULL); + + if (source) + tmp = g_object_ref (source); + else { + tmp = ifnet_update_connection_from_config_block (conn_name, NULL, &error); + if (!tmp) { + nm_log_warn (LOGD_SETTINGS, "Could not read connection '%s': %s", + conn_name, error->message); + g_error_free (error); + return NULL; + } + + /* If we just read the connection from disk, it's clearly not Unsaved */ + update_unsaved = FALSE; + } + + object = (GObject *) g_object_new (NM_TYPE_IFNET_CONNECTION, NULL); + + NM_IFNET_CONNECTION_GET_PRIVATE ((NMIfnetConnection *) object)->conn_name = g_strdup (conn_name); + if (!nm_settings_connection_replace_settings (NM_SETTINGS_CONNECTION (object), + tmp, + update_unsaved, + NULL, + NULL)) { + g_object_unref (object); + return NULL; + } + g_object_unref (tmp); + + return NM_IFNET_CONNECTION (object); +} + static void finalize (GObject * object) { - g_free (NM_IFNET_CONNECTION_GET_PRIVATE (object)->conn_name); + g_free (NM_IFNET_CONNECTION_GET_PRIVATE ((NMIfnetConnection *) object)->conn_name); G_OBJECT_CLASS (nm_ifnet_connection_parent_class)->finalize (object); } @@ -203,21 +220,19 @@ nm_ifnet_connection_class_init (NMIfnetConnectionClass * ifnet_connection_class) GObjectClass *object_class = G_OBJECT_CLASS (ifnet_connection_class); NMSettingsConnectionClass *settings_class = NM_SETTINGS_CONNECTION_CLASS (ifnet_connection_class); - g_type_class_add_private (ifnet_connection_class, sizeof (NMIfnetConnectionPrivate)); - object_class->finalize = finalize; + settings_class->delete = do_delete; settings_class->commit_changes = commit_changes; signals[IFNET_SETUP_MONITORS] = g_signal_new ("ifnet_setup_monitors", - G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, - 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); + G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, + 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); signals[IFNET_CANCEL_MONITORS] = g_signal_new ("ifnet_cancel_monitors", - G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, - 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - + G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, + 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); } diff --git a/src/settings/plugins/ifnet/nm-ifnet-connection.h b/src/settings/plugins/ifnet/nm-ifnet-connection.h index 856996e070..490ba1f7a4 100644 --- a/src/settings/plugins/ifnet/nm-ifnet-connection.h +++ b/src/settings/plugins/ifnet/nm-ifnet-connection.h @@ -32,13 +32,8 @@ #define NM_IS_IFNET_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_IFNET_CONNECTION)) #define NM_IFNET_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_IFNET_CONNECTION, NMIfnetConnectionClass)) -typedef struct { - NMSettingsConnection parent; -} NMIfnetConnection; - -typedef struct { - NMSettingsConnectionClass parent; -} NMIfnetConnectionClass; +typedef struct _NMIfnetConnection NMIfnetConnection; +typedef struct _NMIfnetConnectionClass NMIfnetConnectionClass; GType nm_ifnet_connection_get_type (void); diff --git a/src/settings/plugins/ifnet/plugin.c b/src/settings/plugins/ifnet/plugin.c index a0676cf894..f7688585a6 100644 --- a/src/settings/plugins/ifnet/plugin.c +++ b/src/settings/plugins/ifnet/plugin.c @@ -22,21 +22,19 @@ #include "nm-default.h" -#include <string.h> +#include "plugin.h" +#include <string.h> #include <gmodule.h> #include "nm-utils.h" #include "nm-setting-connection.h" - -#include "nm-default.h" #include "nm-dbus-interface.h" #include "nm-settings-plugin.h" -#include "nm-ifnet-connection.h" #include "nm-config.h" #include "NetworkManagerUtils.h" -#include "plugin.h" +#include "nm-ifnet-connection.h" #include "net_utils.h" #include "net_parser.h" #include "wpa_parser.h" @@ -46,34 +44,54 @@ #define IFNET_PLUGIN_INFO "(C) 1999-2010 Gentoo Foundation, Inc. To report bugs please use bugs.gentoo.org with [networkmanager] or [qiaomuf] prefix." #define IFNET_MANAGE_WELL_KNOWN_DEFAULT TRUE +/*****************************************************************************/ + +typedef void (*FileChangedFn) (gpointer user_data); + +typedef struct { + FileChangedFn callback; + gpointer user_data; +} FileMonitorInfo; + +/*****************************************************************************/ + typedef struct { GHashTable *connections; /* uuid::connection */ gboolean unmanaged_well_known; GFileMonitor *net_monitor; GFileMonitor *wpa_monitor; - } SettingsPluginIfnetPrivate; -typedef void (*FileChangedFn) (gpointer user_data); +struct _SettingsPluginIfnet { + GObject parent; + SettingsPluginIfnetPrivate _priv; +}; -typedef struct { - FileChangedFn callback; - gpointer user_data; -} FileMonitorInfo; +struct _SettingsPluginIfnetClass { + GObjectClass parent; +}; static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface); -static void reload_connections (NMSettingsPlugin *config); - G_DEFINE_TYPE_EXTENDED (SettingsPluginIfnet, settings_plugin_ifnet, G_TYPE_OBJECT, 0, G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN, settings_plugin_interface_init)) -#define SETTINGS_PLUGIN_IFNET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SETTINGS_TYPE_PLUGIN_IFNET, SettingsPluginIfnetPrivate)) + +#define SETTINGS_PLUGIN_IFNET_GET_PRIVATE(self) _NM_GET_PRIVATE (self, SettingsPluginIfnet, SETTINGS_IS_PLUGIN_IFNET) + +/*****************************************************************************/ static SettingsPluginIfnet *settings_plugin_ifnet_get (void); + NM_DEFINE_SINGLETON_GETTER (SettingsPluginIfnet, settings_plugin_ifnet_get, SETTINGS_TYPE_PLUGIN_IFNET); +/*****************************************************************************/ + +static void reload_connections (NMSettingsPlugin *config); + +/*****************************************************************************/ + static gboolean is_managed_plugin (void) { @@ -84,9 +102,9 @@ is_managed_plugin (void) static void file_changed (GFileMonitor * monitor, - GFile * file, - GFile * other_file, - GFileMonitorEvent event_type, gpointer user_data) + GFile * file, + GFile * other_file, + GFileMonitorEvent event_type, gpointer user_data) { FileMonitorInfo *info; @@ -102,7 +120,7 @@ file_changed (GFileMonitor * monitor, static GFileMonitor * monitor_file_changes (const char *filename, - FileChangedFn callback, gpointer user_data) + FileChangedFn callback, gpointer user_data) { GFile *file; GFileMonitor *monitor; @@ -166,7 +184,7 @@ cancel_monitors (NMIfnetConnection * connection, gpointer user_data) static void connection_removed_cb (NMSettingsConnection *obj, gpointer user_data) { - g_hash_table_remove (SETTINGS_PLUGIN_IFNET_GET_PRIVATE (user_data)->connections, + g_hash_table_remove (SETTINGS_PLUGIN_IFNET_GET_PRIVATE ((SettingsPluginIfnet *) user_data)->connections, nm_connection_get_uuid (NM_CONNECTION (obj))); } @@ -296,7 +314,7 @@ add_connection (NMSettingsPlugin *config, gboolean save_to_disk, GError **error) { - SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE (config); + SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE ((SettingsPluginIfnet *) config); NMIfnetConnection *new = NULL; /* Ensure we reject attempts to add the connection long before we're @@ -358,7 +376,7 @@ check_unmanaged (gpointer key, gpointer data, gpointer user_data) static GSList * get_unmanaged_specs (NMSettingsPlugin * config) { - SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE (config); + SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE ((SettingsPluginIfnet *) config); GSList *list = NULL; nm_log_info (LOGD_SETTINGS, "getting unmanaged specs..."); @@ -366,29 +384,10 @@ get_unmanaged_specs (NMSettingsPlugin * config) return list; } -static void -init (NMSettingsPlugin *config) -{ - SettingsPluginIfnet *self = SETTINGS_PLUGIN_IFNET (config); - SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE (self); - - nm_log_info (LOGD_SETTINGS, "Initializing!"); - - priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); - priv->unmanaged_well_known = !is_managed_plugin (); - nm_log_info (LOGD_SETTINGS, "management mode: %s", - priv->unmanaged_well_known ? "unmanaged" : "managed"); - - setup_monitors (NULL, config); - reload_connections (config); - - nm_log_info (LOGD_SETTINGS, "Initialzation complete!"); -} - static GSList * get_connections (NMSettingsPlugin *config) { - SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE (config); + SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE ((SettingsPluginIfnet *) config); GSList *connections = NULL; GHashTableIter iter; NMIfnetConnection *connection; @@ -407,24 +406,11 @@ get_connections (NMSettingsPlugin *config) return connections; } -static void -settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface) -{ - plugin_iface->init = init; - plugin_iface->get_connections = get_connections; - plugin_iface->get_unmanaged_specs = get_unmanaged_specs; - plugin_iface->add_connection = add_connection; - plugin_iface->reload_connections = reload_connections; -} - -static void -settings_plugin_ifnet_init (SettingsPluginIfnet * plugin) -{ -} +/*****************************************************************************/ static void get_property (GObject * object, guint prop_id, GValue * value, - GParamSpec * pspec) + GParamSpec * pspec) { switch (prop_id) { case NM_SETTINGS_PLUGIN_PROP_NAME: @@ -443,22 +429,39 @@ get_property (GObject * object, guint prop_id, GValue * value, } } +/*****************************************************************************/ + static void -set_property (GObject * object, guint prop_id, const GValue * value, - GParamSpec * pspec) +init (NMSettingsPlugin *config) +{ + SettingsPluginIfnet *self = SETTINGS_PLUGIN_IFNET (config); + SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE (self); + + nm_log_info (LOGD_SETTINGS, "Initializing!"); + + priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); + priv->unmanaged_well_known = !is_managed_plugin (); + nm_log_info (LOGD_SETTINGS, "management mode: %s", + priv->unmanaged_well_known ? "unmanaged" : "managed"); + + setup_monitors (NULL, config); + reload_connections (config); + + nm_log_info (LOGD_SETTINGS, "Initialzation complete!"); +} + +/*****************************************************************************/ + +static void +settings_plugin_ifnet_init (SettingsPluginIfnet * plugin) { - switch (prop_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } } static void dispose (GObject * object) { SettingsPluginIfnet *plugin = SETTINGS_PLUGIN_IFNET (object); - SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE (plugin); + SettingsPluginIfnetPrivate *priv = SETTINGS_PLUGIN_IFNET_GET_PRIVATE ((SettingsPluginIfnet *) plugin); cancel_monitors (NULL, object); if (priv->connections) { @@ -476,25 +479,34 @@ settings_plugin_ifnet_class_init (SettingsPluginIfnetClass * req_class) { GObjectClass *object_class = G_OBJECT_CLASS (req_class); - g_type_class_add_private (req_class, sizeof (SettingsPluginIfnetPrivate)); - object_class->dispose = dispose; object_class->get_property = get_property; - object_class->set_property = set_property; g_object_class_override_property (object_class, - NM_SETTINGS_PLUGIN_PROP_NAME, - NM_SETTINGS_PLUGIN_NAME); + NM_SETTINGS_PLUGIN_PROP_NAME, + NM_SETTINGS_PLUGIN_NAME); g_object_class_override_property (object_class, - NM_SETTINGS_PLUGIN_PROP_INFO, - NM_SETTINGS_PLUGIN_INFO); + NM_SETTINGS_PLUGIN_PROP_INFO, + NM_SETTINGS_PLUGIN_INFO); g_object_class_override_property (object_class, - NM_SETTINGS_PLUGIN_PROP_CAPABILITIES, - NM_SETTINGS_PLUGIN_CAPABILITIES); + NM_SETTINGS_PLUGIN_PROP_CAPABILITIES, + NM_SETTINGS_PLUGIN_CAPABILITIES); } +static void +settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface) +{ + plugin_iface->init = init; + plugin_iface->get_connections = get_connections; + plugin_iface->get_unmanaged_specs = get_unmanaged_specs; + plugin_iface->add_connection = add_connection; + plugin_iface->reload_connections = reload_connections; +} + +/*****************************************************************************/ + G_MODULE_EXPORT GObject * nm_settings_plugin_factory (void) { diff --git a/src/settings/plugins/ifnet/plugin.h b/src/settings/plugins/ifnet/plugin.h index 09640968ba..f006e7e41f 100644 --- a/src/settings/plugins/ifnet/plugin.h +++ b/src/settings/plugins/ifnet/plugin.h @@ -33,13 +33,6 @@ typedef struct _SettingsPluginIfnet SettingsPluginIfnet; typedef struct _SettingsPluginIfnetClass SettingsPluginIfnetClass; -struct _SettingsPluginIfnet { - GObject parent; -}; - -struct _SettingsPluginIfnetClass { - GObjectClass parent; -}; - GType settings_plugin_ifnet_get_type (void); + #endif diff --git a/src/settings/plugins/ifupdown/nm-ifupdown-connection.c b/src/settings/plugins/ifupdown/nm-ifupdown-connection.c index 34ecf8b9ec..15d30079d2 100644 --- a/src/settings/plugins/ifupdown/nm-ifupdown-connection.c +++ b/src/settings/plugins/ifupdown/nm-ifupdown-connection.c @@ -22,6 +22,8 @@ #include "nm-default.h" +#include "nm-ifupdown-connection.h" + #include <string.h> #include <glib/gstdio.h> @@ -30,11 +32,37 @@ #include "nm-setting-wireless-security.h" #include "nm-settings-connection.h" #include "nm-settings-plugin.h" -#include "nm-ifupdown-connection.h" #include "parser.h" +/*****************************************************************************/ + +struct _NMIfupdownConnection { + NMSettingsConnection parent; +}; + +struct _NMIfupdownConnectionClass { + NMSettingsConnectionClass parent; +}; + G_DEFINE_TYPE (NMIfupdownConnection, nm_ifupdown_connection, NM_TYPE_SETTINGS_CONNECTION) +/*****************************************************************************/ + +static gboolean +supports_secrets (NMSettingsConnection *connection, const char *setting_name) +{ + nm_log_info (LOGD_SETTINGS, "supports_secrets() for setting_name: '%s'", setting_name); + + return (strcmp (setting_name, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME) == 0); +} + +/*****************************************************************************/ + +static void +nm_ifupdown_connection_init (NMIfupdownConnection *connection) +{ +} + NMIfupdownConnection* nm_ifupdown_connection_new (if_block *block) { @@ -57,19 +85,6 @@ nm_ifupdown_connection_new (if_block *block) return (NMIfupdownConnection *) object; } -static gboolean -supports_secrets (NMSettingsConnection *connection, const char *setting_name) -{ - nm_log_info (LOGD_SETTINGS, "supports_secrets() for setting_name: '%s'", setting_name); - - return (strcmp (setting_name, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME) == 0); -} - -static void -nm_ifupdown_connection_init (NMIfupdownConnection *connection) -{ -} - static void nm_ifupdown_connection_class_init (NMIfupdownConnectionClass *ifupdown_connection_class) { diff --git a/src/settings/plugins/ifupdown/nm-ifupdown-connection.h b/src/settings/plugins/ifupdown/nm-ifupdown-connection.h index e1999bef5c..f710b1b6f3 100644 --- a/src/settings/plugins/ifupdown/nm-ifupdown-connection.h +++ b/src/settings/plugins/ifupdown/nm-ifupdown-connection.h @@ -35,13 +35,8 @@ #define NM_IS_IFUPDOWN_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_IFUPDOWN_CONNECTION)) #define NM_IFUPDOWN_CONNECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_IFUPDOWN_CONNECTION, NMIfupdownConnectionClass)) -typedef struct { - NMSettingsConnection parent; -} NMIfupdownConnection; - -typedef struct { - NMSettingsConnectionClass parent; -} NMIfupdownConnectionClass; +typedef struct _NMIfupdownConnection NMIfupdownConnection; +typedef struct _NMIfupdownConnectionClass NMIfupdownConnectionClass; GType nm_ifupdown_connection_get_type (void); diff --git a/src/settings/plugins/ifupdown/plugin.c b/src/settings/plugins/ifupdown/plugin.c index b506b2d602..abb9af146d 100644 --- a/src/settings/plugins/ifupdown/plugin.c +++ b/src/settings/plugins/ifupdown/plugin.c @@ -24,15 +24,14 @@ #include "nm-default.h" +#include "plugin.h" + #include <string.h> #include <arpa/inet.h> #include <gudev/gudev.h> #include <gmodule.h> #include "nm-setting-connection.h" - -#include "interface_parser.h" - #include "nm-dbus-interface.h" #include "nm-settings-plugin.h" #include "nm-setting-ip4-config.h" @@ -42,13 +41,12 @@ #include "nm-utils.h" #include "nm-core-internal.h" #include "NetworkManagerUtils.h" +#include "nm-config.h" +#include "interface_parser.h" #include "nm-ifupdown-connection.h" -#include "plugin.h" #include "parser.h" -#include "nm-config.h" - #define ENI_INTERFACES_FILE "/etc/network/interfaces" #define IFUPDOWN_PLUGIN_NAME "ifupdown" @@ -58,9 +56,11 @@ /* #define ALWAYS_UNMANAGE TRUE */ #ifndef ALWAYS_UNMANAGE -# define ALWAYS_UNMANAGE FALSE +#define ALWAYS_UNMANAGE FALSE #endif +/*****************************************************************************/ + typedef struct { GUdevClient *client; @@ -77,82 +77,29 @@ typedef struct { gboolean unmanage_well_known; } SettingsPluginIfupdownPrivate; -static void -settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface); +struct _SettingsPluginIfupdown { + GObject parent; + SettingsPluginIfupdownPrivate _priv; +}; + +struct _SettingsPluginIfupdownClass { + GObjectClass parent; +}; + +static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface); G_DEFINE_TYPE_EXTENDED (SettingsPluginIfupdown, settings_plugin_ifupdown, G_TYPE_OBJECT, 0, G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN, settings_plugin_interface_init)) -#define SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SETTINGS_TYPE_PLUGIN_IFUPDOWN, SettingsPluginIfupdownPrivate)) +#define SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE(self) _NM_GET_PRIVATE (self, SettingsPluginIfupdown, SETTINGS_IS_PLUGIN_IFUPDOWN) + +/*****************************************************************************/ static SettingsPluginIfupdown *settings_plugin_ifupdown_get (void); NM_DEFINE_SINGLETON_GETTER (SettingsPluginIfupdown, settings_plugin_ifupdown_get, SETTINGS_TYPE_PLUGIN_IFUPDOWN); -static void -settings_plugin_ifupdown_class_init (SettingsPluginIfupdownClass *req_class); - -static void -init (NMSettingsPlugin *config); - -/* Returns the plugins currently known list of connections. The returned - * list is freed by the system settings service. - */ -static GSList* -get_connections (NMSettingsPlugin *config); - -/* - * Return a list of device specifications which NetworkManager should not - * manage. Returned list will be freed by the system settings service, and - * each element must be allocated using g_malloc() or its variants. - */ -static GSList* -get_unmanaged_specs (NMSettingsPlugin *config); - - -/* GObject */ -static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec); - -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec); - -static void -dispose (GObject *object); - -static void -settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface) -{ - plugin_iface->init = init; - plugin_iface->get_connections = get_connections; - plugin_iface->get_unmanaged_specs = get_unmanaged_specs; -} - -static void -settings_plugin_ifupdown_class_init (SettingsPluginIfupdownClass *req_class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (req_class); - - g_type_class_add_private (req_class, sizeof (SettingsPluginIfupdownPrivate)); - - object_class->dispose = dispose; - object_class->get_property = get_property; - object_class->set_property = set_property; - - g_object_class_override_property (object_class, - NM_SETTINGS_PLUGIN_PROP_NAME, - NM_SETTINGS_PLUGIN_NAME); - - g_object_class_override_property (object_class, - NM_SETTINGS_PLUGIN_PROP_INFO, - NM_SETTINGS_PLUGIN_INFO); - - g_object_class_override_property (object_class, - NM_SETTINGS_PLUGIN_PROP_CAPABILITIES, - NM_SETTINGS_PLUGIN_CAPABILITIES); -} +/*****************************************************************************/ static void bind_device_to_connection (SettingsPluginIfupdown *self, @@ -192,7 +139,7 @@ bind_device_to_connection (SettingsPluginIfupdown *self, } nm_settings_connection_commit_changes (NM_SETTINGS_CONNECTION (exported), NM_SETTINGS_CONNECTION_COMMIT_REASON_NONE, NULL, NULL); -} +} static void udev_device_added (SettingsPluginIfupdown *self, GUdevDevice *device) @@ -291,6 +238,85 @@ handle_uevent (GUdevClient *client, udev_device_changed (self, device); } +/* Returns the plugins currently known list of connections. The returned + * list is freed by the system settings service. + */ +static GSList* +get_connections (NMSettingsPlugin *config) +{ + SettingsPluginIfupdownPrivate *priv = SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE ((SettingsPluginIfupdown *) config); + GSList *connections; + + nm_log_info (LOGD_SETTINGS, "(%d) ... get_connections.", GPOINTER_TO_UINT(config)); + + if(priv->unmanage_well_known) { + nm_log_info (LOGD_SETTINGS, "(%d) ... get_connections (managed=false): return empty list.", GPOINTER_TO_UINT(config)); + return NULL; + } + + connections = _nm_utils_hash_values_to_slist (priv->connections); + + nm_log_info (LOGD_SETTINGS, "(%d) connections count: %d", GPOINTER_TO_UINT(config), g_slist_length(connections)); + return connections; +} + +/* + * Return a list of device specifications which NetworkManager should not + * manage. Returned list will be freed by the system settings service, and + * each element must be allocated using g_malloc() or its variants. + */ +static GSList* +get_unmanaged_specs (NMSettingsPlugin *config) +{ + SettingsPluginIfupdownPrivate *priv = SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE ((SettingsPluginIfupdown *) config); + GSList *specs = NULL; + GHashTableIter iter; + GUdevDevice *device; + const char *iface; + + if (!ALWAYS_UNMANAGE && !priv->unmanage_well_known) + return NULL; + + nm_log_info (LOGD_SETTINGS, "get unmanaged devices count: %d", + g_hash_table_size (priv->kernel_ifaces)); + + g_hash_table_iter_init (&iter, priv->kernel_ifaces); + while (g_hash_table_iter_next (&iter, (gpointer) &iface, (gpointer) &device)) { + const char *address; + + address = g_udev_device_get_sysfs_attr (device, "address"); + if (address) + specs = g_slist_append (specs, g_strdup_printf ("mac:%s", address)); + else + specs = g_slist_append (specs, g_strdup_printf ("interface-name:%s", iface)); + } + return specs; +} + +/*****************************************************************************/ + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + switch (prop_id) { + case NM_SETTINGS_PLUGIN_PROP_NAME: + g_value_set_string (value, IFUPDOWN_PLUGIN_NAME); + break; + case NM_SETTINGS_PLUGIN_PROP_INFO: + g_value_set_string (value, IFUPDOWN_PLUGIN_INFO); + break; + case NM_SETTINGS_PLUGIN_PROP_CAPABILITIES: + g_value_set_uint (value, NM_SETTINGS_PLUGIN_CAP_NONE); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/*****************************************************************************/ + static void init (NMSettingsPlugin *config) { @@ -442,61 +468,7 @@ init (NMSettingsPlugin *config) nm_log_info (LOGD_SETTINGS, "end _init."); } - -/* Returns the plugins currently known list of connections. The returned - * list is freed by the system settings service. - */ -static GSList* -get_connections (NMSettingsPlugin *config) -{ - SettingsPluginIfupdownPrivate *priv = SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE (config); - GSList *connections; - - nm_log_info (LOGD_SETTINGS, "(%d) ... get_connections.", GPOINTER_TO_UINT(config)); - - if(priv->unmanage_well_known) { - nm_log_info (LOGD_SETTINGS, "(%d) ... get_connections (managed=false): return empty list.", GPOINTER_TO_UINT(config)); - return NULL; - } - - connections = _nm_utils_hash_values_to_slist (priv->connections); - - nm_log_info (LOGD_SETTINGS, "(%d) connections count: %d", GPOINTER_TO_UINT(config), g_slist_length(connections)); - return connections; -} - -/* - * Return a list of device specifications which NetworkManager should not - * manage. Returned list will be freed by the system settings service, and - * each element must be allocated using g_malloc() or its variants. - */ -static GSList* -get_unmanaged_specs (NMSettingsPlugin *config) -{ - SettingsPluginIfupdownPrivate *priv = SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE (config); - GSList *specs = NULL; - GHashTableIter iter; - GUdevDevice *device; - const char *iface; - - if (!ALWAYS_UNMANAGE && !priv->unmanage_well_known) - return NULL; - - nm_log_info (LOGD_SETTINGS, "get unmanaged devices count: %d", - g_hash_table_size (priv->kernel_ifaces)); - - g_hash_table_iter_init (&iter, priv->kernel_ifaces); - while (g_hash_table_iter_next (&iter, (gpointer) &iface, (gpointer) &device)) { - const char *address; - - address = g_udev_device_get_sysfs_attr (device, "address"); - if (address) - specs = g_slist_append (specs, g_strdup_printf ("mac:%s", address)); - else - specs = g_slist_append (specs, g_strdup_printf ("interface-name:%s", iface)); - } - return specs; -} +/*****************************************************************************/ static void settings_plugin_ifupdown_init (SettingsPluginIfupdown *plugin) @@ -504,55 +476,49 @@ settings_plugin_ifupdown_init (SettingsPluginIfupdown *plugin) } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) +dispose (GObject *object) { - switch (prop_id) { - case NM_SETTINGS_PLUGIN_PROP_NAME: - g_value_set_string (value, IFUPDOWN_PLUGIN_NAME); - break; - case NM_SETTINGS_PLUGIN_PROP_INFO: - g_value_set_string (value, IFUPDOWN_PLUGIN_INFO); - break; - case NM_SETTINGS_PLUGIN_PROP_CAPABILITIES: - g_value_set_uint (value, NM_SETTINGS_PLUGIN_CAP_NONE); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} + SettingsPluginIfupdown *plugin = SETTINGS_PLUGIN_IFUPDOWN (object); + SettingsPluginIfupdownPrivate *priv = SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE (plugin); -static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - switch (prop_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + g_clear_pointer (&priv->kernel_ifaces, g_hash_table_destroy); + g_clear_pointer (&priv->eni_ifaces, g_hash_table_destroy); + g_clear_object (&priv->client); + + G_OBJECT_CLASS (settings_plugin_ifupdown_parent_class)->dispose (object); } static void -dispose (GObject *object) +settings_plugin_ifupdown_class_init (SettingsPluginIfupdownClass *req_class) { - SettingsPluginIfupdown *plugin = SETTINGS_PLUGIN_IFUPDOWN (object); - SettingsPluginIfupdownPrivate *priv = SETTINGS_PLUGIN_IFUPDOWN_GET_PRIVATE (plugin); + GObjectClass *object_class = G_OBJECT_CLASS (req_class); - if (priv->kernel_ifaces) - g_hash_table_destroy(priv->kernel_ifaces); + object_class->dispose = dispose; + object_class->get_property = get_property; - if (priv->eni_ifaces) - g_hash_table_destroy(priv->eni_ifaces); + g_object_class_override_property (object_class, + NM_SETTINGS_PLUGIN_PROP_NAME, + NM_SETTINGS_PLUGIN_NAME); - if (priv->client) - g_object_unref (priv->client); + g_object_class_override_property (object_class, + NM_SETTINGS_PLUGIN_PROP_INFO, + NM_SETTINGS_PLUGIN_INFO); + g_object_class_override_property (object_class, + NM_SETTINGS_PLUGIN_PROP_CAPABILITIES, + NM_SETTINGS_PLUGIN_CAPABILITIES); +} - G_OBJECT_CLASS (settings_plugin_ifupdown_parent_class)->dispose (object); +static void +settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface) +{ + plugin_iface->init = init; + plugin_iface->get_connections = get_connections; + plugin_iface->get_unmanaged_specs = get_unmanaged_specs; } +/*****************************************************************************/ + G_MODULE_EXPORT GObject * nm_settings_plugin_factory (void) { diff --git a/src/settings/plugins/ifupdown/plugin.h b/src/settings/plugins/ifupdown/plugin.h index b568ea78b6..c2a3639cc3 100644 --- a/src/settings/plugins/ifupdown/plugin.h +++ b/src/settings/plugins/ifupdown/plugin.h @@ -36,14 +36,6 @@ typedef struct _SettingsPluginIfupdown SettingsPluginIfupdown; typedef struct _SettingsPluginIfupdownClass SettingsPluginIfupdownClass; -struct _SettingsPluginIfupdown { - GObject parent; -}; - -struct _SettingsPluginIfupdownClass { - GObjectClass parent; -}; - GType settings_plugin_ifupdown_get_type (void); -#endif /* _PLUGIN_H_ */ +#endif /* _PLUGIN_H_ */ diff --git a/src/settings/plugins/keyfile/plugin.c b/src/settings/plugins/keyfile/plugin.c index c5598fc5b4..40014128ba 100644 --- a/src/settings/plugins/keyfile/plugin.c +++ b/src/settings/plugins/keyfile/plugin.c @@ -21,6 +21,8 @@ #include "nm-default.h" +#include "plugin.h" + #include <sys/stat.h> #include <unistd.h> #include <sys/types.h> @@ -35,19 +37,12 @@ #include "nm-config.h" #include "nm-core-internal.h" -#include "plugin.h" #include "nm-settings-plugin.h" #include "nm-keyfile-connection.h" #include "writer.h" #include "utils.h" -static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface); - -G_DEFINE_TYPE_EXTENDED (SettingsPluginKeyfile, settings_plugin_keyfile, G_TYPE_OBJECT, 0, - G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN, - settings_plugin_interface_init)) - -#define SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SETTINGS_TYPE_PLUGIN_KEYFILE, SettingsPluginKeyfilePrivate)) +/*****************************************************************************/ typedef struct { GHashTable *connections; /* uuid::connection */ @@ -59,10 +54,29 @@ typedef struct { NMConfig *config; } SettingsPluginKeyfilePrivate; +struct _SettingsPluginKeyfile { + GObject parent; + SettingsPluginKeyfilePrivate _priv; +}; + +struct _SettingsPluginKeyfileClass { + GObjectClass parent; +}; + +static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface); + +G_DEFINE_TYPE_EXTENDED (SettingsPluginKeyfile, settings_plugin_keyfile, G_TYPE_OBJECT, 0, + G_IMPLEMENT_INTERFACE (NM_TYPE_SETTINGS_PLUGIN, + settings_plugin_interface_init)) + +#define SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE(self) _NM_GET_PRIVATE (self, SettingsPluginKeyfile, SETTINGS_IS_PLUGIN_KEYFILE) + +/*****************************************************************************/ + static void connection_removed_cb (NMSettingsConnection *obj, gpointer user_data) { - g_hash_table_remove (SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (user_data)->connections, + g_hash_table_remove (SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE ((SettingsPluginKeyfile *) user_data)->connections, nm_connection_get_uuid (NM_CONNECTION (obj))); } @@ -327,7 +341,7 @@ config_changed_cb (NMConfig *config, static void setup_monitoring (NMSettingsPlugin *config) { - SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (config); + SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE ((SettingsPluginKeyfile *) config); GFile *file; GFileMonitor *monitor; @@ -455,12 +469,12 @@ read_connections (NMSettingsPlugin *config) } } -/* Plugin */ +/*****************************************************************************/ static GSList * get_connections (NMSettingsPlugin *config) { - SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (config); + SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE ((SettingsPluginKeyfile *) config); if (!priv->initialized) { setup_monitoring (config); @@ -474,7 +488,7 @@ static gboolean load_connection (NMSettingsPlugin *config, const char *filename) { - SettingsPluginKeyfile *self = SETTINGS_PLUGIN_KEYFILE (config); + SettingsPluginKeyfile *self = SETTINGS_PLUGIN_KEYFILE ((SettingsPluginKeyfile *) config); NMKeyfileConnection *connection; int dir_len = strlen (nm_keyfile_plugin_get_path ()); @@ -516,7 +530,7 @@ add_connection (NMSettingsPlugin *config, static GSList * get_unmanaged_specs (NMSettingsPlugin *config) { - SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (config); + SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE ((SettingsPluginKeyfile *) config); gs_free char *value = NULL; value = nm_config_data_get_value (nm_config_get_data (priv->config), @@ -526,19 +540,11 @@ get_unmanaged_specs (NMSettingsPlugin *config) return nm_match_spec_split (value); } -/* GObject */ - -static void -settings_plugin_keyfile_init (SettingsPluginKeyfile *plugin) -{ - SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (plugin); - - priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); -} +/*****************************************************************************/ static void get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) + GValue *value, GParamSpec *pspec) { switch (prop_id) { case NM_SETTINGS_PLUGIN_PROP_NAME: @@ -556,21 +562,20 @@ get_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) +settings_plugin_keyfile_init (SettingsPluginKeyfile *plugin) { - switch (prop_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (plugin); + + priv->connections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); } static void constructed (GObject *object) { - SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (object); + SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE ((SettingsPluginKeyfile *) object); priv->config = g_object_ref (nm_config_get ()); if (nm_config_data_has_value (nm_config_get_data_orig (priv->config), @@ -580,10 +585,16 @@ constructed (GObject *object) nm_log_warn (LOGD_SETTINGS, "keyfile: 'hostname' option is deprecated and has no effect"); } +GObject * +nm_settings_keyfile_plugin_new (void) +{ + return g_object_new (SETTINGS_TYPE_PLUGIN_KEYFILE, NULL); +} + static void dispose (GObject *object) { - SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE (object); + SettingsPluginKeyfilePrivate *priv = SETTINGS_PLUGIN_KEYFILE_GET_PRIVATE ((SettingsPluginKeyfile *) object); if (priv->monitor) { nm_clear_g_signal_handler (priv->monitor, &priv->monitor_id); @@ -610,12 +621,9 @@ settings_plugin_keyfile_class_init (SettingsPluginKeyfileClass *req_class) { GObjectClass *object_class = G_OBJECT_CLASS (req_class); - g_type_class_add_private (req_class, sizeof (SettingsPluginKeyfilePrivate)); - object_class->constructed = constructed; object_class->dispose = dispose; object_class->get_property = get_property; - object_class->set_property = set_property; g_object_class_override_property (object_class, NM_SETTINGS_PLUGIN_PROP_NAME, @@ -633,16 +641,9 @@ settings_plugin_keyfile_class_init (SettingsPluginKeyfileClass *req_class) static void settings_plugin_interface_init (NMSettingsPluginInterface *plugin_iface) { - /* interface implementation */ plugin_iface->get_connections = get_connections; plugin_iface->load_connection = load_connection; plugin_iface->reload_connections = reload_connections; plugin_iface->add_connection = add_connection; plugin_iface->get_unmanaged_specs = get_unmanaged_specs; } - -GObject * -nm_settings_keyfile_plugin_new (void) -{ - return g_object_new (SETTINGS_TYPE_PLUGIN_KEYFILE, NULL); -} diff --git a/src/settings/plugins/keyfile/plugin.h b/src/settings/plugins/keyfile/plugin.h index a22b9c494a..21f41c88d1 100644 --- a/src/settings/plugins/keyfile/plugin.h +++ b/src/settings/plugins/keyfile/plugin.h @@ -19,8 +19,8 @@ * Copyright (C) 2008 - 2011 Red Hat, Inc. */ -#ifndef _PLUGIN_H_ -#define _PLUGIN_H_ +#ifndef __NMKF_PLUGIN_H__ +#define __NMKF_PLUGIN_H__ #define SETTINGS_TYPE_PLUGIN_KEYFILE (settings_plugin_keyfile_get_type ()) #define SETTINGS_PLUGIN_KEYFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SETTINGS_TYPE_PLUGIN_KEYFILE, SettingsPluginKeyfile)) @@ -29,16 +29,11 @@ #define SETTINGS_IS_PLUGIN_KEYFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SETTINGS_TYPE_PLUGIN_KEYFILE)) #define SETTINGS_PLUGIN_KEYFILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SETTINGS_TYPE_PLUGIN_KEYFILE, SettingsPluginKeyfileClass)) -typedef struct { - GObject parent; -} SettingsPluginKeyfile; - -typedef struct { - GObjectClass parent; -} SettingsPluginKeyfileClass; +typedef struct _SettingsPluginKeyfile SettingsPluginKeyfile; +typedef struct _SettingsPluginKeyfileClass SettingsPluginKeyfileClass; GType settings_plugin_keyfile_get_type (void); GObject *nm_settings_keyfile_plugin_new (void); -#endif /* _PLUGIN_H_ */ +#endif /* __NMKF_PLUGIN_H__ */ diff --git a/src/supplicant-manager/nm-supplicant-config.c b/src/supplicant-manager/nm-supplicant-config.c index 6283edd6ca..f52df99628 100644 --- a/src/supplicant-manager/nm-supplicant-config.c +++ b/src/supplicant-manager/nm-supplicant-config.c @@ -21,29 +21,25 @@ #include "nm-default.h" +#include "nm-supplicant-config.h" + #include <string.h> #include <stdlib.h> -#include "nm-supplicant-config.h" #include "nm-supplicant-settings-verify.h" #include "nm-setting.h" #include "NetworkManagerUtils.h" #include "nm-utils.h" -#define NM_SUPPLICANT_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ - NM_TYPE_SUPPLICANT_CONFIG, \ - NMSupplicantConfigPrivate)) - -G_DEFINE_TYPE (NMSupplicantConfig, nm_supplicant_config, G_TYPE_OBJECT) - typedef struct { char *value; guint32 len; OptType type; } ConfigOption; -typedef struct -{ +/*****************************************************************************/ + +typedef struct { GHashTable *config; GHashTable *blobs; guint32 ap_scan; @@ -51,6 +47,21 @@ typedef struct gboolean dispose_has_run; } NMSupplicantConfigPrivate; +struct _NMSupplicantConfig { + GObject parent; + NMSupplicantConfigPrivate _priv; +}; + +struct _NMSupplicantConfigClass { + GObjectClass parent; +}; + +G_DEFINE_TYPE (NMSupplicantConfig, nm_supplicant_config, G_TYPE_OBJECT) + +#define NM_SUPPLICANT_CONFIG_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMSupplicantConfig, NM_IS_SUPPLICANT_CONFIG) + +/*****************************************************************************/ + NMSupplicantConfig * nm_supplicant_config_new (void) { @@ -243,11 +254,11 @@ nm_supplicant_config_add_blob_for_connection (NMSupplicantConfig *self, static void nm_supplicant_config_finalize (GObject *object) { - /* Complete object destruction */ - g_hash_table_destroy (NM_SUPPLICANT_CONFIG_GET_PRIVATE (object)->config); - g_hash_table_destroy (NM_SUPPLICANT_CONFIG_GET_PRIVATE (object)->blobs); + NMSupplicantConfigPrivate *priv = NM_SUPPLICANT_CONFIG_GET_PRIVATE ((NMSupplicantConfig *) object); + + g_hash_table_destroy (priv->config); + g_hash_table_destroy (priv->blobs); - /* Chain up to the parent class */ G_OBJECT_CLASS (nm_supplicant_config_parent_class)->finalize (object); } @@ -258,8 +269,6 @@ nm_supplicant_config_class_init (NMSupplicantConfigClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = nm_supplicant_config_finalize; - - g_type_class_add_private (object_class, sizeof (NMSupplicantConfigPrivate)); } guint32 diff --git a/src/supplicant-manager/nm-supplicant-config.h b/src/supplicant-manager/nm-supplicant-config.h index bf3e64c5c2..5b12a41175 100644 --- a/src/supplicant-manager/nm-supplicant-config.h +++ b/src/supplicant-manager/nm-supplicant-config.h @@ -35,16 +35,7 @@ #define NM_IS_SUPPLICANT_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_SUPPLICANT_CONFIG)) #define NM_SUPPLICANT_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_SUPPLICANT_CONFIG, NMSupplicantConfigClass)) -struct _NMSupplicantConfig -{ - GObject parent; -}; - -typedef struct -{ - GObjectClass parent; -} NMSupplicantConfigClass; - +typedef struct _NMSupplicantConfigClass NMSupplicantConfigClass; GType nm_supplicant_config_get_type (void); diff --git a/src/supplicant-manager/nm-supplicant-interface.c b/src/supplicant-manager/nm-supplicant-interface.c index 626472d072..1cdb6180a1 100644 --- a/src/supplicant-manager/nm-supplicant-interface.c +++ b/src/supplicant-manager/nm-supplicant-interface.c @@ -21,11 +21,12 @@ #include "nm-default.h" +#include "nm-supplicant-interface.h" + #include <stdio.h> #include <string.h> #include "NetworkManagerUtils.h" -#include "nm-supplicant-interface.h" #include "nm-supplicant-config.h" #include "nm-core-internal.h" #include "nm-dbus-compat.h" @@ -36,13 +37,8 @@ #define WPAS_ERROR_INVALID_IFACE WPAS_DBUS_INTERFACE ".InvalidInterface" #define WPAS_ERROR_EXISTS_ERROR WPAS_DBUS_INTERFACE ".InterfaceExists" -G_DEFINE_TYPE (NMSupplicantInterface, nm_supplicant_interface, G_TYPE_OBJECT) +/*****************************************************************************/ -#define NM_SUPPLICANT_INTERFACE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ - NM_TYPE_SUPPLICANT_INTERFACE, \ - NMSupplicantInterfacePrivate)) - -/* Signals */ enum { STATE, /* change in the interface's state */ REMOVED, /* interface was removed by the supplicant */ @@ -56,8 +52,6 @@ enum { }; static guint signals[LAST_SIGNAL] = { 0 }; - -/* Properties */ NM_GOBJECT_PROPERTIES_DEFINE (NMSupplicantInterface, PROP_IFACE, PROP_SCANNING, @@ -98,7 +92,20 @@ typedef struct { NMSupplicantConfig *cfg; } NMSupplicantInterfacePrivate; -/*********************************************************************************************/ +struct _NMSupplicantInterface { + GObject parent; + NMSupplicantInterfacePrivate _priv; +}; + +struct _NMSupplicantInterfaceClass { + GObjectClass parent; +}; + +G_DEFINE_TYPE (NMSupplicantInterface, nm_supplicant_interface, G_TYPE_OBJECT) + +#define NM_SUPPLICANT_INTERFACE_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMSupplicantInterface, NM_IS_SUPPLICANT_INTERFACE) + +/*****************************************************************************/ #define _NMLOG_DOMAIN LOGD_SUPPLICANT #define _NMLOG_PREFIX_NAME "sup-iface" @@ -118,7 +125,7 @@ typedef struct { _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ } G_STMT_END -/*********************************************************************************************/ +/*****************************************************************************/ static void emit_error_helper (NMSupplicantInterface *self, GError *error) @@ -1436,7 +1443,7 @@ nm_supplicant_interface_get_max_scan_ssids (NMSupplicantInterface *self) return NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self)->max_scan_ssids; } -/*******************************************************************/ +/*****************************************************************************/ NMSupplicantInterface * nm_supplicant_interface_new (const char *ifname, @@ -1469,7 +1476,7 @@ set_property (GObject *object, const GValue *value, GParamSpec *pspec) { - NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (object); + NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE ((NMSupplicantInterface *) object); switch (prop_id) { case PROP_IFACE: @@ -1501,7 +1508,7 @@ get_property (GObject *object, GValue *value, GParamSpec *pspec) { - NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (object); + NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE ((NMSupplicantInterface *) object); switch (prop_id) { case PROP_SCANNING: @@ -1519,10 +1526,10 @@ get_property (GObject *object, static void dispose (GObject *object) { - NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (object); + NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE ((NMSupplicantInterface *) object); if (priv->iface_proxy) - g_signal_handlers_disconnect_by_data (priv->iface_proxy, NM_SUPPLICANT_INTERFACE (object)); + g_signal_handlers_disconnect_by_data (priv->iface_proxy, object); g_clear_object (&priv->iface_proxy); if (priv->init_cancellable) @@ -1552,13 +1559,10 @@ nm_supplicant_interface_class_init (NMSupplicantInterfaceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMSupplicantInterfacePrivate)); - object_class->dispose = dispose; object_class->set_property = set_property; object_class->get_property = get_property; - /* Properties */ obj_properties[PROP_SCANNING] = g_param_spec_boolean (NM_SUPPLICANT_INTERFACE_SCANNING, "", "", FALSE, @@ -1598,69 +1602,68 @@ nm_supplicant_interface_class_init (NMSupplicantInterfaceClass *klass) g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); - /* Signals */ signals[STATE] = - g_signal_new (NM_SUPPLICANT_INTERFACE_STATE, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMSupplicantInterfaceClass, state), - NULL, NULL, NULL, - G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INT); + g_signal_new (NM_SUPPLICANT_INTERFACE_STATE, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_INT); signals[REMOVED] = - g_signal_new (NM_SUPPLICANT_INTERFACE_REMOVED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMSupplicantInterfaceClass, removed), - NULL, NULL, NULL, - G_TYPE_NONE, 0); + g_signal_new (NM_SUPPLICANT_INTERFACE_REMOVED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 0); signals[NEW_BSS] = - g_signal_new (NM_SUPPLICANT_INTERFACE_NEW_BSS, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMSupplicantInterfaceClass, new_bss), - NULL, NULL, NULL, - G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_VARIANT); + g_signal_new (NM_SUPPLICANT_INTERFACE_NEW_BSS, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_VARIANT); signals[BSS_UPDATED] = - g_signal_new (NM_SUPPLICANT_INTERFACE_BSS_UPDATED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMSupplicantInterfaceClass, bss_updated), - NULL, NULL, NULL, - G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_VARIANT); + g_signal_new (NM_SUPPLICANT_INTERFACE_BSS_UPDATED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_VARIANT); signals[BSS_REMOVED] = - g_signal_new (NM_SUPPLICANT_INTERFACE_BSS_REMOVED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMSupplicantInterfaceClass, bss_removed), - NULL, NULL, NULL, - G_TYPE_NONE, 1, G_TYPE_STRING); + g_signal_new (NM_SUPPLICANT_INTERFACE_BSS_REMOVED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_STRING); signals[SCAN_DONE] = - g_signal_new (NM_SUPPLICANT_INTERFACE_SCAN_DONE, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMSupplicantInterfaceClass, scan_done), - NULL, NULL, NULL, - G_TYPE_NONE, 1, G_TYPE_BOOLEAN); + g_signal_new (NM_SUPPLICANT_INTERFACE_SCAN_DONE, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 1, G_TYPE_BOOLEAN); signals[CONNECTION_ERROR] = - g_signal_new (NM_SUPPLICANT_INTERFACE_CONNECTION_ERROR, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMSupplicantInterfaceClass, connection_error), - NULL, NULL, NULL, - G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); + g_signal_new (NM_SUPPLICANT_INTERFACE_CONNECTION_ERROR, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); signals[CREDENTIALS_REQUEST] = - g_signal_new (NM_SUPPLICANT_INTERFACE_CREDENTIALS_REQUEST, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (NMSupplicantInterfaceClass, credentials_request), - NULL, NULL, NULL, - G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); + g_signal_new (NM_SUPPLICANT_INTERFACE_CREDENTIALS_REQUEST, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, NULL, + G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); } diff --git a/src/supplicant-manager/nm-supplicant-interface.h b/src/supplicant-manager/nm-supplicant-interface.h index a586e7ea79..852bf10409 100644 --- a/src/supplicant-manager/nm-supplicant-interface.h +++ b/src/supplicant-manager/nm-supplicant-interface.h @@ -71,52 +71,7 @@ enum { #define NM_SUPPLICANT_INTERFACE_CONNECTION_ERROR "connection-error" #define NM_SUPPLICANT_INTERFACE_CREDENTIALS_REQUEST "credentials-request" -struct _NMSupplicantInterface { - GObject parent; -}; - -typedef struct { - GObjectClass parent; - - /* Signals */ - - /* change in the interface's state */ - void (*state) (NMSupplicantInterface * iface, - guint32 new_state, - guint32 old_state, - int disconnect_reason); - - /* interface was removed by the supplicant */ - void (*removed) (NMSupplicantInterface * iface); - - /* interface saw a new BSS */ - void (*new_bss) (NMSupplicantInterface *iface, - const char *object_path, - GVariant *props); - - /* a BSS property changed */ - void (*bss_updated) (NMSupplicantInterface *iface, - const char *object_path, - GVariant *props); - - /* supplicant removed a BSS from its scan list */ - void (*bss_removed) (NMSupplicantInterface *iface, - const char *object_path); - - /* wireless scan is done */ - void (*scan_done) (NMSupplicantInterface *iface, - gboolean success); - - /* an error occurred during a connection request */ - void (*connection_error) (NMSupplicantInterface * iface, - const char * name, - const char * message); - - /* 802.1x credentials requested */ - void (*credentials_request) (NMSupplicantInterface *iface, - const char *field, - const char *message); -} NMSupplicantInterfaceClass; +typedef struct _NMSupplicantInterfaceClass NMSupplicantInterfaceClass; GType nm_supplicant_interface_get_type (void); diff --git a/src/supplicant-manager/nm-supplicant-manager.c b/src/supplicant-manager/nm-supplicant-manager.c index 57cd57131d..502ac0c8b3 100644 --- a/src/supplicant-manager/nm-supplicant-manager.c +++ b/src/supplicant-manager/nm-supplicant-manager.c @@ -21,28 +21,15 @@ #include "nm-default.h" +#include "nm-supplicant-manager.h" + #include <string.h> -#include "nm-supplicant-manager.h" #include "nm-supplicant-interface.h" #include "nm-supplicant-types.h" #include "nm-core-internal.h" -#define NM_SUPPLICANT_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ - NM_TYPE_SUPPLICANT_MANAGER, \ - NMSupplicantManagerPrivate)) - -G_DEFINE_TYPE (NMSupplicantManager, nm_supplicant_manager, G_TYPE_OBJECT) - -#define _NMLOG_DOMAIN LOGD_SUPPLICANT -#define _NMLOG_PREFIX_NAME "supplicant" -#define _NMLOG(level, ...) \ - G_STMT_START { \ - nm_log ((level), _NMLOG_DOMAIN, \ - "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - _NMLOG_PREFIX_NAME": " \ - _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ - } G_STMT_END +/*****************************************************************************/ typedef struct { GDBusProxy * proxy; @@ -56,11 +43,36 @@ typedef struct { guint die_count; } NMSupplicantManagerPrivate; -/********************************************************************/ +struct _NMSupplicantManager { + GObject parent; + NMSupplicantManagerPrivate _priv; +}; + +struct _NMSupplicantManagerClass { + GObjectClass parent; +}; + +G_DEFINE_TYPE (NMSupplicantManager, nm_supplicant_manager, G_TYPE_OBJECT) + +#define NM_SUPPLICANT_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMSupplicantManager, NM_IS_SUPPLICANT_MANAGER) + +/*****************************************************************************/ + +#define _NMLOG_DOMAIN LOGD_SUPPLICANT +#define _NMLOG_PREFIX_NAME "supplicant" +#define _NMLOG(level, ...) \ + G_STMT_START { \ + nm_log ((level), _NMLOG_DOMAIN, \ + "%s" _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + _NMLOG_PREFIX_NAME": " \ + _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } G_STMT_END + +/*****************************************************************************/ G_DEFINE_QUARK (nm-supplicant-error-quark, nm_supplicant_error); -/********************************************************************/ +/*****************************************************************************/ static inline gboolean die_count_exceeded (guint32 count) @@ -77,7 +89,7 @@ is_available (NMSupplicantManager *self) && !die_count_exceeded (priv->die_count); } -/********************************************************************/ +/*****************************************************************************/ static void _sup_iface_last_ref (gpointer data, @@ -351,7 +363,7 @@ on_proxy_acquired (GObject *object, GAsyncResult *result, gpointer user_data) name_owner_cb (priv->proxy, NULL, self); } -/*******************************************************************/ +/*****************************************************************************/ NM_DEFINE_SINGLETON_GETTER (NMSupplicantManager, nm_supplicant_manager_get, NM_TYPE_SUPPLICANT_MANAGER); @@ -403,8 +415,6 @@ nm_supplicant_manager_class_init (NMSupplicantManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - g_type_class_add_private (object_class, sizeof (NMSupplicantManagerPrivate)); - object_class->dispose = dispose; } diff --git a/src/supplicant-manager/nm-supplicant-manager.h b/src/supplicant-manager/nm-supplicant-manager.h index 4cd7a0bdc4..9cc7e50b97 100644 --- a/src/supplicant-manager/nm-supplicant-manager.h +++ b/src/supplicant-manager/nm-supplicant-manager.h @@ -25,22 +25,14 @@ #include "nm-supplicant-types.h" #include "nm-device.h" -#define NM_TYPE_SUPPLICANT_MANAGER (nm_supplicant_manager_get_type ()) -#define NM_SUPPLICANT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SUPPLICANT_MANAGER, NMSupplicantManager)) -#define NM_SUPPLICANT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_SUPPLICANT_MANAGER, NMSupplicantManagerClass)) -#define NM_IS_SUPPLICANT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_SUPPLICANT_MANAGER)) -#define NM_IS_SUPPLICANT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_SUPPLICANT_MANAGER)) -#define NM_SUPPLICANT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_SUPPLICANT_MANAGER, NMSupplicantManagerClass)) - -struct _NMSupplicantManager -{ - GObject parent; -}; - -typedef struct -{ - GObjectClass parent; -} NMSupplicantManagerClass; +#define NM_TYPE_SUPPLICANT_MANAGER (nm_supplicant_manager_get_type ()) +#define NM_SUPPLICANT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SUPPLICANT_MANAGER, NMSupplicantManager)) +#define NM_SUPPLICANT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_SUPPLICANT_MANAGER, NMSupplicantManagerClass)) +#define NM_IS_SUPPLICANT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_SUPPLICANT_MANAGER)) +#define NM_IS_SUPPLICANT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_SUPPLICANT_MANAGER)) +#define NM_SUPPLICANT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_SUPPLICANT_MANAGER, NMSupplicantManagerClass)) + +typedef struct _NMSupplicantManagerClass NMSupplicantManagerClass; GType nm_supplicant_manager_get_type (void); diff --git a/src/supplicant-manager/nm-supplicant-settings-verify.c b/src/supplicant-manager/nm-supplicant-settings-verify.c index bb046f9361..9355b210bc 100644 --- a/src/supplicant-manager/nm-supplicant-settings-verify.c +++ b/src/supplicant-manager/nm-supplicant-settings-verify.c @@ -20,13 +20,13 @@ #include "nm-default.h" +#include "nm-supplicant-settings-verify.h" + #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> -#include "nm-supplicant-settings-verify.h" - struct Opt { const char * key; const OptType type; diff --git a/src/tests/config/nm-test-device.c b/src/tests/config/nm-test-device.c index 1ae964eef2..33df46c285 100644 --- a/src/tests/config/nm-test-device.c +++ b/src/tests/config/nm-test-device.c @@ -20,16 +20,37 @@ #include "nm-default.h" +#include "nm-test-device.h" + #include <string.h> -#include "nm-test-device.h" #include "nm-device-private.h" #include "nm-utils.h" +/*****************************************************************************/ + +struct _NMTestDevice { + NMDevice parent; +}; + +struct _NMTestDeviceClass { + NMDeviceClass parent; +}; + G_DEFINE_TYPE (NMTestDevice, nm_test_device, NM_TYPE_DEVICE) #define PARENT_CLASS (G_OBJECT_CLASS (g_type_class_peek_parent (nm_test_device_parent_class))) +/*****************************************************************************/ + +static NMDeviceCapabilities +get_generic_capabilities (NMDevice *device) +{ + return NM_DEVICE_CAP_IS_NON_KERNEL; +} + +/*****************************************************************************/ + static void nm_test_device_init (NMTestDevice *self) { @@ -50,10 +71,13 @@ dispose (GObject *object) PARENT_CLASS->dispose (object); } -static NMDeviceCapabilities -get_generic_capabilities (NMDevice *device) +NMDevice * +nm_test_device_new (const char *hwaddr) { - return NM_DEVICE_CAP_IS_NON_KERNEL; + return g_object_new (NM_TYPE_TEST_DEVICE, + NM_DEVICE_IFACE, "dummy", + NM_DEVICE_PERM_HW_ADDRESS, hwaddr, + NULL); } static void @@ -67,12 +91,3 @@ nm_test_device_class_init (NMTestDeviceClass *klass) device_class->get_generic_capabilities = get_generic_capabilities; } - -NMDevice * -nm_test_device_new (const char *hwaddr) -{ - return g_object_new (NM_TYPE_TEST_DEVICE, - NM_DEVICE_IFACE, "dummy", - NM_DEVICE_PERM_HW_ADDRESS, hwaddr, - NULL); -} diff --git a/src/tests/config/nm-test-device.h b/src/tests/config/nm-test-device.h index dfb8ff7813..c200b728f4 100644 --- a/src/tests/config/nm-test-device.h +++ b/src/tests/config/nm-test-device.h @@ -30,14 +30,8 @@ #define NM_IS_TEST_DEVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_TEST_DEVICE)) #define NM_TEST_DEVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_TEST_DEVICE, NMTestDeviceClass)) -typedef struct { - NMDevice parent; - -} NMTestDevice; - -typedef struct { - NMDeviceClass parent; -} NMTestDeviceClass; +typedef struct _NMTestDevice NMTestDevice; +typedef struct _NMTestDeviceClass NMTestDeviceClass; GType nm_test_device_get_type (void); diff --git a/src/tests/config/test-config.c b/src/tests/config/test-config.c index 73358d027c..a3cbc3ec7c 100644 --- a/src/tests/config/test-config.c +++ b/src/tests/config/test-config.c @@ -29,7 +29,7 @@ #include "nm-test-utils-core.h" -/********************************************************************************/ +/*****************************************************************************/ static void _assert_config_value (const NMConfigData *config_data, const char *group, const char *key, const char *expected_value, const char *file, int line) @@ -46,7 +46,7 @@ _assert_config_value (const NMConfigData *config_data, const char *group, const } #define assert_config_value(config_data, group, key, expected_value) _assert_config_value (config_data, group, key, expected_value, __FILE__, __LINE__) -/********************************************************************************/ +/*****************************************************************************/ static NMConfig * setup_config (GError **error, const char *config_file, const char *intern_config, const char *const* atomic_section_prefixes, const char *config_dir, const char *system_config_dir, ...) diff --git a/src/tests/test-dcb.c b/src/tests/test-dcb.c index 0a133de369..2ab0f89056 100644 --- a/src/tests/test-dcb.c +++ b/src/tests/test-dcb.c @@ -334,7 +334,7 @@ test_fcoe_cleanup (void) g_assert (success); } -/*******************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/src/tests/test-general-with-expect.c b/src/tests/test-general-with-expect.c index ab2b15b5f2..3ec21328a3 100644 --- a/src/tests/test-general-with-expect.c +++ b/src/tests/test-general-with-expect.c @@ -36,7 +36,7 @@ #define CLOCK_BOOTTIME 7 #endif -/*******************************************/ +/*****************************************************************************/ static void test_nm_utils_monotonic_timestamp_as_boottime (void) @@ -72,7 +72,7 @@ test_nm_utils_monotonic_timestamp_as_boottime (void) } } -/*******************************************/ +/*****************************************************************************/ struct test_nm_utils_kill_child_async_data { @@ -370,7 +370,7 @@ test_nm_utils_kill_child (void) g_test_assert_expected_messages (); } -/*******************************************/ +/*****************************************************************************/ static void _remove_at_indexes_init_random_idx (GArray *idx, guint array_len, guint idx_len) @@ -469,7 +469,7 @@ test_nm_utils_array_remove_at_indexes (void) } } -/*******************************************/ +/*****************************************************************************/ static void test_nm_ethernet_address_is_valid (void) @@ -496,7 +496,7 @@ test_nm_ethernet_address_is_valid (void) g_assert ( nm_ethernet_address_is_valid (((guint8[8]) { 0x02,0x30,0xb4,0x00,0x00,0x01 }), ETH_ALEN)); } -/*******************************************/ +/*****************************************************************************/ typedef struct { union { @@ -852,7 +852,7 @@ test_nm_multi_index (void) _mi_test_run (50, 18); } -/*******************************************/ +/*****************************************************************************/ static void test_nm_utils_new_vlan_name (void) @@ -895,7 +895,7 @@ test_nm_utils_new_vlan_name (void) } } -/*******************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/src/tests/test-general.c b/src/tests/test-general.c index 9769ead11b..2596cff6af 100644 --- a/src/tests/test-general.c +++ b/src/tests/test-general.c @@ -267,7 +267,7 @@ test_nm_utils_log_connection_diff (void) g_clear_object (&connection); } -/*******************************************/ +/*****************************************************************************/ static NMConnection * _match_connection_new (void) @@ -953,7 +953,7 @@ test_connection_sort_autoconnect_priority (void) _test_connection_sort_autoconnect_priority_free (c2); } -/*******************************************/ +/*****************************************************************************/ static const char *_test_match_spec_all[] = { "e", @@ -1085,7 +1085,7 @@ test_nm_match_spec_interface_name (void) #undef S } -/*******************************************/ +/*****************************************************************************/ static void _do_test_match_spec_match_config (const char *file, gint line, const char *spec_str, guint version, guint v_maj, guint v_min, guint v_mic, NMMatchSpecMatchType expected) @@ -1227,7 +1227,7 @@ test_nm_match_spec_match_config (void) do_test_match_spec_match_config ("nm-version-min:1.6,nm-version-min:1.4.6,nm-version-min:1.2.16,except:nm-version:1.4.8", 1, 8, 8, NM_MATCH_SPEC_MATCH); } -/*******************************************/ +/*****************************************************************************/ static void test_nm_utils_strbuf_append (void) diff --git a/src/tests/test-ip4-config.c b/src/tests/test-ip4-config.c index 95b221bc0c..23dd1ab331 100644 --- a/src/tests/test-ip4-config.c +++ b/src/tests/test-ip4-config.c @@ -322,7 +322,7 @@ test_strip_search_trailing_dot (void) g_object_unref (config); } -/*******************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/src/tests/test-ip6-config.c b/src/tests/test-ip6-config.c index 3eceec0cbe..05b0320610 100644 --- a/src/tests/test-ip6-config.c +++ b/src/tests/test-ip6-config.c @@ -340,7 +340,7 @@ test_strip_search_trailing_dot (void) g_object_unref (config); } -/*******************************************/ +/*****************************************************************************/ NMTST_DEFINE(); diff --git a/src/tests/test-resolvconf-capture.c b/src/tests/test-resolvconf-capture.c index 32bc97342a..749eb664fb 100644 --- a/src/tests/test-resolvconf-capture.c +++ b/src/tests/test-resolvconf-capture.c @@ -287,7 +287,7 @@ test_capture_dns_options_valid6 (void) g_array_free (ns6, TRUE); g_ptr_array_free (dns_options, TRUE); } -/*******************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/src/tests/test-wired-defname.c b/src/tests/test-wired-defname.c index 3ae3a19d95..7f7e41f926 100644 --- a/src/tests/test-wired-defname.c +++ b/src/tests/test-wired-defname.c @@ -39,7 +39,7 @@ _new_connection (const char *id) return a; } -/*******************************************/ +/*****************************************************************************/ static char * _get_default_wired_name (GSList *list) @@ -55,7 +55,7 @@ _get_default_wired_name (GSList *list) return nm_device_ethernet_utils_get_default_wired_name (v); } -/*******************************************/ +/*****************************************************************************/ static void test_defname_no_connections (void) @@ -66,7 +66,7 @@ test_defname_no_connections (void) g_assert_cmpstr (name, ==, "Wired connection 1"); } -/*******************************************/ +/*****************************************************************************/ static void test_defname_no_conflict (void) @@ -84,7 +84,7 @@ test_defname_no_conflict (void) g_slist_free_full (list, g_object_unref); } -/*******************************************/ +/*****************************************************************************/ static void test_defname_conflict (void) @@ -102,7 +102,7 @@ test_defname_conflict (void) g_slist_free_full (list, g_object_unref); } -/*******************************************/ +/*****************************************************************************/ static void test_defname_multiple_conflicts (void) @@ -124,7 +124,7 @@ test_defname_multiple_conflicts (void) g_slist_free_full (list, g_object_unref); } -/*******************************************/ +/*****************************************************************************/ NMTST_DEFINE (); diff --git a/src/vpn-manager/nm-vpn-connection.c b/src/vpn-manager/nm-vpn-connection.c index 1285f59cbd..6e10576efe 100644 --- a/src/vpn-manager/nm-vpn-connection.c +++ b/src/vpn-manager/nm-vpn-connection.c @@ -21,6 +21,8 @@ #include "nm-default.h" +#include "nm-vpn-connection.h" + #include <string.h> #include <sys/socket.h> #include <netinet/in.h> @@ -30,7 +32,6 @@ #include <unistd.h> #include <syslog.h> -#include "nm-vpn-connection.h" #include "nm-ip4-config.h" #include "nm-ip6-config.h" #include "nm-platform.h" @@ -188,7 +189,7 @@ static void _set_vpn_state (NMVpnConnection *self, NMVpnConnectionStateReason reason, gboolean quitting); -/*********************************************************************/ +/*****************************************************************************/ #define _NMLOG_DOMAIN LOGD_VPN #define _NMLOG_PREFIX_NAME "vpn-connection" @@ -243,7 +244,7 @@ __LOG_create_prefix (char *buf, NMVpnConnection *self) } \ } G_STMT_END -/*********************************************************************/ +/*****************************************************************************/ static void cancel_get_secrets (NMVpnConnection *self) @@ -2321,7 +2322,7 @@ nm_vpn_connection_deactivate (NMVpnConnection *self, return success; } -/******************************************************************************/ +/*****************************************************************************/ static void plugin_need_secrets_cb (GDBusProxy *proxy, GAsyncResult *result, gpointer user_data) @@ -2532,7 +2533,7 @@ plugin_interactive_secrets_required (NMVpnConnection *self, g_strfreev (hints); } -/******************************************************************************/ +/*****************************************************************************/ static void device_changed (NMActiveConnection *active, @@ -2563,7 +2564,7 @@ device_changed (NMActiveConnection *active, apply_parent_device_config (NM_VPN_CONNECTION (active)); } -/******************************************************************************/ +/*****************************************************************************/ static void nm_vpn_connection_init (NMVpnConnection *self) diff --git a/src/vpn-manager/nm-vpn-connection.h b/src/vpn-manager/nm-vpn-connection.h index 3fe5605467..635ef33659 100644 --- a/src/vpn-manager/nm-vpn-connection.h +++ b/src/vpn-manager/nm-vpn-connection.h @@ -19,8 +19,8 @@ * Copyright (C) 2006 - 2008 Novell, Inc. */ -#ifndef __NETWORKMANAGER_VPN_CONNECTION_H__ -#define __NETWORKMANAGER_VPN_CONNECTION_H__ +#ifndef __NM_VPN_CONNECTION_H__ +#define __NM_VPN_CONNECTION_H__ #include "nm-vpn-dbus-interface.h" #include "nm-device.h" @@ -28,6 +28,8 @@ #include "nm-active-connection.h" #include "nm-vpn-plugin-info.h" +#define NM_VPN_ROUTE_METRIC_DEFAULT 50 + #define NM_TYPE_VPN_CONNECTION (nm_vpn_connection_get_type ()) #define NM_VPN_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_VPN_CONNECTION, NMVpnConnection)) #define NM_VPN_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_VPN_CONNECTION, NMVpnConnectionClass)) @@ -44,9 +46,6 @@ #define NM_VPN_CONNECTION_INTERNAL_STATE_CHANGED "internal-state-changed" #define NM_VPN_CONNECTION_INTERNAL_RETRY_AFTER_FAILURE "internal-retry-after-failure" - -#define NM_VPN_ROUTE_METRIC_DEFAULT 50 - typedef struct _NMVpnConnectionClass NMVpnConnectionClass; GType nm_vpn_connection_get_type (void); @@ -79,4 +78,4 @@ struct in6_addr * nm_vpn_connection_get_ip6_internal_gateway (NMVpnConnection guint32 nm_vpn_connection_get_ip4_route_metric (NMVpnConnection *self); guint32 nm_vpn_connection_get_ip6_route_metric (NMVpnConnection *self); -#endif /* __NETWORKMANAGER_VPN_CONNECTION_H__ */ +#endif /* __NM_VPN_CONNECTION_H__ */ diff --git a/src/vpn-manager/nm-vpn-manager.c b/src/vpn-manager/nm-vpn-manager.c index 6dcd546383..35f93fd859 100644 --- a/src/vpn-manager/nm-vpn-manager.c +++ b/src/vpn-manager/nm-vpn-manager.c @@ -21,9 +21,10 @@ #include "nm-default.h" +#include "nm-vpn-manager.h" + #include <string.h> -#include "nm-vpn-manager.h" #include "nm-vpn-plugin-info.h" #include "nm-vpn-connection.h" #include "nm-setting-vpn.h" @@ -31,10 +32,6 @@ #include "nm-core-internal.h" #include "nm-enum-types.h" -G_DEFINE_TYPE (NMVpnManager, nm_vpn_manager, G_TYPE_OBJECT) - -#define NM_VPN_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_VPN_MANAGER, NMVpnManagerPrivate)) - typedef struct { GSList *plugins; GFileMonitor *monitor_etc; @@ -47,7 +44,20 @@ typedef struct { GHashTable *active_services; } NMVpnManagerPrivate; -/******************************************************************************/ +struct _NMVpnManager { + GObject parent; + NMVpnManagerPrivate _priv; +}; + +struct _NMVpnManagerClass { + GObjectClass parent; +}; + +G_DEFINE_TYPE (NMVpnManager, nm_vpn_manager, G_TYPE_OBJECT) + +#define NM_VPN_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMVpnManager, NM_IS_VPN_MANAGER) + +/*****************************************************************************/ static void vpn_state_changed (NMVpnConnection *vpn, @@ -120,7 +130,7 @@ nm_vpn_manager_activate_connection (NMVpnManager *manager, return TRUE; } -/******************************************************************************/ +/*****************************************************************************/ static void try_add_plugin (NMVpnManager *self, NMVpnPluginInfo *plugin_info) @@ -202,7 +212,7 @@ vpn_dir_changed (GFileMonitor *monitor, } } -/******************************************************************************/ +/*****************************************************************************/ NM_DEFINE_SINGLETON_GETTER (NMVpnManager, nm_vpn_manager_get, NM_TYPE_VPN_MANAGER); @@ -252,7 +262,7 @@ nm_vpn_manager_init (NMVpnManager *self) static void dispose (GObject *object) { - NMVpnManagerPrivate *priv = NM_VPN_MANAGER_GET_PRIVATE (object); + NMVpnManagerPrivate *priv = NM_VPN_MANAGER_GET_PRIVATE ((NMVpnManager *) object); if (priv->monitor_etc) { if (priv->monitor_id_etc) @@ -281,9 +291,6 @@ nm_vpn_manager_class_init (NMVpnManagerClass *manager_class) { GObjectClass *object_class = G_OBJECT_CLASS (manager_class); - g_type_class_add_private (manager_class, sizeof (NMVpnManagerPrivate)); - - /* virtual methods */ object_class->dispose = dispose; } diff --git a/src/vpn-manager/nm-vpn-manager.h b/src/vpn-manager/nm-vpn-manager.h index 9ccd882d1c..8b1bec1e47 100644 --- a/src/vpn-manager/nm-vpn-manager.h +++ b/src/vpn-manager/nm-vpn-manager.h @@ -19,8 +19,8 @@ * Copyright (C) 2006 - 2008 Novell, Inc. */ -#ifndef __NETWORKMANAGER_VPN_MANAGER_H__ -#define __NETWORKMANAGER_VPN_MANAGER_H__ +#ifndef __NM_VPN_MANAGER_H__ +#define __NM_VPN_MANAGER_H__ #include "nm-vpn-connection.h" @@ -31,13 +31,8 @@ #define NM_IS_VPN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_VPN_MANAGER)) #define NM_VPN_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_VPN_MANAGER, NMVpnManagerClass)) -typedef struct { - GObject parent; -} NMVpnManager; - -typedef struct { - GObjectClass parent; -} NMVpnManagerClass; +typedef struct _NMVpnManager NMVpnManager; +typedef struct _NMVpnManagerClass NMVpnManagerClass; GType nm_vpn_manager_get_type (void); @@ -47,4 +42,4 @@ gboolean nm_vpn_manager_activate_connection (NMVpnManager *manager, NMVpnConnection *vpn, GError **error); -#endif /* __NETWORKMANAGER_VPN_MANAGER_H__ */ +#endif /* __NM_VPN_MANAGER_H__ */ |