mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-09 04:48:10 +02:00
initrd: don't create a default connection if there's already one
Certain arguments (such as "nameserver") don't specify a connection they
apply to and using them would generate a default ethernet connection.
This is probably not the right thing to do.
(cherry picked from commit 6da2058237)
This commit is contained in:
parent
24c3a0c88f
commit
0d9a62c25e
1 changed files with 26 additions and 2 deletions
|
|
@ -32,6 +32,20 @@
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
_connection_matches_type (gpointer key, gpointer value, gpointer user_data)
|
||||||
|
{
|
||||||
|
NMConnection *connection = value;
|
||||||
|
const char *type_name = user_data;
|
||||||
|
NMSettingConnection *s_con;
|
||||||
|
|
||||||
|
s_con = nm_connection_get_setting_connection (connection);
|
||||||
|
if (type_name == NULL)
|
||||||
|
return nm_setting_connection_get_master (s_con) == NULL;
|
||||||
|
else
|
||||||
|
return strcmp (nm_setting_connection_get_connection_type (s_con), type_name) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
static NMConnection *
|
static NMConnection *
|
||||||
get_conn (GHashTable *connections, const char *ifname, const char *type_name)
|
get_conn (GHashTable *connections, const char *ifname, const char *type_name)
|
||||||
{
|
{
|
||||||
|
|
@ -49,7 +63,18 @@ get_conn (GHashTable *connections, const char *ifname, const char *type_name)
|
||||||
multi_connect = NM_CONNECTION_MULTI_CONNECT_MULTIPLE;
|
multi_connect = NM_CONNECTION_MULTI_CONNECT_MULTIPLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
connection = g_hash_table_lookup (connections, (gpointer)basename);
|
connection = g_hash_table_lookup (connections, (gpointer) basename);
|
||||||
|
if (!connection && !ifname) {
|
||||||
|
/*
|
||||||
|
* If ifname was not given, we'll match the connection by type.
|
||||||
|
* If the type was not given either, then we're happy with any connection but slaves.
|
||||||
|
* This is so that things like "bond=bond0:eth1,eth2 nameserver=1.3.3.7 end up
|
||||||
|
* slapping the nameserver to the most reasonable connection (bond0).
|
||||||
|
*/
|
||||||
|
connection = g_hash_table_find (connections,
|
||||||
|
_connection_matches_type,
|
||||||
|
(gpointer) type_name);
|
||||||
|
}
|
||||||
|
|
||||||
if (connection) {
|
if (connection) {
|
||||||
setting = (NMSetting *)nm_connection_get_setting_connection (connection);
|
setting = (NMSetting *)nm_connection_get_setting_connection (connection);
|
||||||
|
|
@ -658,7 +683,6 @@ parse_rd_peerdns (GHashTable *connections, char *argument)
|
||||||
NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS, auto_dns,
|
NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS, auto_dns,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
|
||||||
s_ip = nm_connection_get_setting_ip6_config (connection);
|
s_ip = nm_connection_get_setting_ip6_config (connection);
|
||||||
g_object_set (s_ip,
|
g_object_set (s_ip,
|
||||||
NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS, auto_dns,
|
NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS, auto_dns,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue