diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 649b1c8ec9..dfa73dce1b 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -8382,7 +8382,7 @@ constructed (GObject *object) /* Have to call update_initial_hw_address() before calling get_ignore_carrier() */ if (nm_device_has_capability (self, NM_DEVICE_CAP_CARRIER_DETECT)) { - priv->ignore_carrier = nm_config_get_ignore_carrier (nm_config_get (), self); + priv->ignore_carrier = nm_config_data_get_ignore_carrier (nm_config_get_data_orig (nm_config_get ()), self); check_carrier (self); _LOGD (LOGD_HW, diff --git a/src/nm-config-data.c b/src/nm-config-data.c index 228abb4c19..5cff076af3 100644 --- a/src/nm-config-data.c +++ b/src/nm-config-data.c @@ -24,6 +24,7 @@ #include #include "nm-config.h" +#include "nm-device.h" #include "gsystem-local-alloc.h" #include "NetworkManagerUtils.h" @@ -44,6 +45,8 @@ typedef struct { GSList *specs; } no_auto_default; + GSList *ignore_carrier; + char *dns_mode; } NMConfigDataPrivate; @@ -139,6 +142,15 @@ nm_config_data_get_dns_mode (const NMConfigData *self) return NM_CONFIG_DATA_GET_PRIVATE (self)->dns_mode; } +gboolean +nm_config_data_get_ignore_carrier (const NMConfigData *self, NMDevice *device) +{ + g_return_val_if_fail (NM_IS_CONFIG_DATA (self), FALSE); + g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); + + return nm_device_spec_match_list (device, NM_CONFIG_DATA_GET_PRIVATE (self)->ignore_carrier); +} + /************************************************************************/ static gboolean @@ -302,6 +314,8 @@ finalize (GObject *gobject) g_free (priv->dns_mode); + g_slist_free_full (priv->ignore_carrier, g_free); + g_key_file_unref (priv->keyfile); G_OBJECT_CLASS (nm_config_data_parent_class)->finalize (gobject); @@ -332,6 +346,8 @@ constructed (GObject *object) priv->dns_mode = g_key_file_get_value (priv->keyfile, "main", "dns", NULL); + priv->ignore_carrier = nm_config_get_device_match_spec (priv->keyfile, "main", "ignore-carrier"); + G_OBJECT_CLASS (nm_config_data_parent_class)->constructed (object); } diff --git a/src/nm-config-data.h b/src/nm-config-data.h index f260a73a90..4141b56815 100644 --- a/src/nm-config-data.h +++ b/src/nm-config-data.h @@ -89,6 +89,8 @@ const GSList * nm_config_data_get_no_auto_default_list (const NMConfigData *c const char *nm_config_data_get_dns_mode (const NMConfigData *self); +gboolean nm_config_data_get_ignore_carrier (const NMConfigData *self, NMDevice *device); + G_END_DECLS #endif /* NM_CONFIG_DATA_H */ diff --git a/src/nm-config.c b/src/nm-config.c index a40b683056..25e4902bde 100644 --- a/src/nm-config.c +++ b/src/nm-config.c @@ -75,8 +75,6 @@ typedef struct { char *debug; - GSList *ignore_carrier; - gboolean configure_and_quit; } NMConfigPrivate; @@ -225,15 +223,6 @@ nm_config_get_configure_and_quit (NMConfig *config) return NM_CONFIG_GET_PRIVATE (config)->configure_and_quit; } -gboolean -nm_config_get_ignore_carrier (NMConfig *config, NMDevice *device) -{ - g_return_val_if_fail (NM_IS_CONFIG (config), FALSE); - g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); - - return nm_device_spec_match_list (device, NM_CONFIG_GET_PRIVATE (config)->ignore_carrier); -} - /************************************************************************/ static char ** @@ -850,8 +839,6 @@ init_sync (GInitable *initable, GCancellable *cancellable, GError **error) priv->debug = g_key_file_get_value (keyfile, "main", "debug", NULL); - priv->ignore_carrier = nm_config_get_device_match_spec (keyfile, "main", "ignore-carrier"); - priv->configure_and_quit = _get_bool_value (keyfile, "main", "configure-and-quit", FALSE); no_auto_default_orig_list = nm_config_get_device_match_spec (keyfile, "main", "no-auto-default"); @@ -905,7 +892,6 @@ finalize (GObject *gobject) g_free (priv->log_level); g_free (priv->log_domains); g_free (priv->debug); - g_slist_free_full (priv->ignore_carrier, g_free); _nm_config_cmd_line_options_clear (&priv->cli); diff --git a/src/nm-config.h b/src/nm-config.h index a559de2c4c..e72132af9d 100644 --- a/src/nm-config.h +++ b/src/nm-config.h @@ -75,8 +75,6 @@ const char *nm_config_get_log_domains (NMConfig *config); const char *nm_config_get_debug (NMConfig *config); gboolean nm_config_get_configure_and_quit (NMConfig *config); -gboolean nm_config_get_ignore_carrier (NMConfig *config, NMDevice *device); - /* for main.c only */ NMConfigCmdLineOptions *nm_config_cmd_line_options_new (void); void nm_config_cmd_line_options_free (NMConfigCmdLineOptions *cli);