diff options
author | Jiří Klimeš <jklimes@redhat.com> | 2013-11-20 18:05:01 +0100 |
---|---|---|
committer | Jiří Klimeš <jklimes@redhat.com> | 2013-11-20 19:07:48 +0100 |
commit | 46a7760ead2841d0a8ad5468bae8042b44af7aa2 (patch) | |
tree | 0e19f8c4e7d73607ba61ec0a4d0b953974c7d413 | |
parent | 073cc01f52f8b2b6d5b20c63814dc1ed00699028 (diff) | |
download | NetworkManager-46a7760ead2841d0a8ad5468bae8042b44af7aa2.tar.gz |
core: do not generate a connection for loopback interface (rh #1032594)
Else loopback is managed, and could be easily disconnected, which causes various
issues with applications. So do not manage it for now, to be on the safer side.
https://bugzilla.redhat.com/show_bug.cgi?id=1032594
-rw-r--r-- | src/nm-manager.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c index bf03084886..adb8d72185 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -151,7 +151,7 @@ static void bluez_manager_bdaddr_removed_cb (NMBluezManager *bluez_mgr, const char *object_path, gpointer user_data); -static void add_device (NMManager *self, NMDevice *device, gboolean nm_created); +static void add_device (NMManager *self, NMDevice *device, gboolean generate_con); static void remove_device (NMManager *self, NMDevice *device, gboolean quitting); static void hostname_provider_init (NMHostnameProvider *provider_class); @@ -581,7 +581,7 @@ modem_added (NMModemManager *modem_manager, /* Make the new modem device */ device = nm_device_modem_new (modem, driver); if (device) - add_device (self, device, TRUE); + add_device (self, device, FALSE); } static void @@ -1188,7 +1188,7 @@ system_create_virtual_device (NMManager *self, NMConnection *connection) if (device) { nm_device_set_is_nm_owned (device, TRUE); - add_device (self, device, TRUE); + add_device (self, device, FALSE); } g_signal_handlers_unblock_by_func (nm_platform_get (), G_CALLBACK (platform_link_added_cb), self); @@ -1769,7 +1769,7 @@ get_existing_connection (NMManager *manager, NMDevice *device) } static void -add_device (NMManager *self, NMDevice *device, gboolean nm_created) +add_device (NMManager *self, NMDevice *device, gboolean generate_con) { NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); const char *iface, *driver, *type_desc; @@ -1862,8 +1862,9 @@ add_device (NMManager *self, NMDevice *device, gboolean nm_created) nm_log_info (LOGD_CORE, "(%s): exported as %s", iface, path); g_free (path); - /* Don't bother generating a connection for devices NM just created */ - if (!nm_created) + /* Don't generate a connection e.g. for devices NM just created, or + * for the loopback */ + if (generate_con) connection = get_existing_connection (self, device); /* Start the device if it's supposed to be managed */ @@ -1963,7 +1964,7 @@ bluez_manager_bdaddr_added_cb (NMBluezManager *bluez_mgr, has_dun && has_nap ? " " : "", has_nap ? "NAP" : ""); - add_device (manager, device, TRUE); + add_device (manager, device, FALSE); } } @@ -2263,7 +2264,7 @@ platform_link_added_cb (NMPlatform *platform, } if (device) - add_device (self, device, FALSE); + add_device (self, device, plink->type != NM_LINK_TYPE_LOOPBACK); } static void @@ -2300,7 +2301,7 @@ atm_device_added_cb (NMAtmManager *atm_mgr, device = nm_device_adsl_new (sysfs_path, iface, driver); if (device) - add_device (self, device, FALSE); + add_device (self, device, TRUE); } static void |