diff options
Diffstat (limited to 'src/nm-initrd-generator')
| -rw-r--r-- | src/nm-initrd-generator/nm-initrd-generator.h | 3 | ||||
| -rw-r--r-- | src/nm-initrd-generator/nmi-cmdline-reader.c | 6 | ||||
| -rw-r--r-- | src/nm-initrd-generator/nmi-dt-reader.c | 2 | ||||
| -rw-r--r-- | src/nm-initrd-generator/nmi-ibft-reader.c | 2 | ||||
| -rw-r--r-- | src/nm-initrd-generator/tests/test-cmdline-reader.c | 30 | ||||
| -rw-r--r-- | src/nm-initrd-generator/tests/test-ibft-reader.c | 6 |
6 files changed, 48 insertions, 1 deletions
diff --git a/src/nm-initrd-generator/nm-initrd-generator.h b/src/nm-initrd-generator/nm-initrd-generator.h index 4f33ac65..0761c9bb 100644 --- a/src/nm-initrd-generator/nm-initrd-generator.h +++ b/src/nm-initrd-generator/nm-initrd-generator.h @@ -12,6 +12,9 @@ #define NMI_WAIT_DEVICE_TIMEOUT_MSEC 60000 #define NMI_IP_REQUIRED_TIMEOUT_MSEC 20000 +#define NMI_AUTOCONNECT_PRIORITY_CMDLINE -100 +#define NMI_AUTOCONNECT_PRIORITY_FIRMWARE -200 + static inline int get_ip_address_family(const char *str, gboolean with_prefix) { diff --git a/src/nm-initrd-generator/nmi-cmdline-reader.c b/src/nm-initrd-generator/nmi-cmdline-reader.c index 34b19e45..36bfdb0b 100644 --- a/src/nm-initrd-generator/nmi-cmdline-reader.c +++ b/src/nm-initrd-generator/nmi-cmdline-reader.c @@ -99,6 +99,7 @@ reader_create_connection(Reader *reader, const char *ifname, const char *mac, const char *type_name, + int autoconnect_priority, NMConnectionMultiConnect multi_connect) { NMConnection *connection; @@ -155,6 +156,8 @@ reader_create_connection(Reader *reader, multi_connect, NM_SETTING_CONNECTION_AUTOCONNECT_RETRIES, 1, + NM_SETTING_CONNECTION_AUTOCONNECT_PRIORITY, + autoconnect_priority, NULL); if (nm_streq0(type_name, NM_SETTING_INFINIBAND_SETTING_NAME)) { @@ -189,6 +192,7 @@ reader_get_default_connection(Reader *reader) NULL, NULL, NM_SETTING_WIRED_SETTING_NAME, + NMI_AUTOCONNECT_PRIORITY_CMDLINE, NM_CONNECTION_MULTI_CONNECT_MULTIPLE); nm_connection_add_setting(con, nm_setting_wired_new()); reader->default_connection = con; @@ -264,6 +268,7 @@ reader_get_connection(Reader *reader, ifname, mac, type_name, + NMI_AUTOCONNECT_PRIORITY_CMDLINE, NM_CONNECTION_MULTI_CONNECT_SINGLE); } setting = (NMSetting *) nm_connection_get_setting_connection(connection); @@ -1526,6 +1531,7 @@ nmi_cmdline_reader_parse(const char *etc_connections_dir, NULL, bootif, NM_SETTING_WIRED_SETTING_NAME, + NMI_AUTOCONNECT_PRIORITY_FIRMWARE, NM_CONNECTION_MULTI_CONNECT_SINGLE); } else { g_object_set(s_wired, NM_SETTING_WIRED_MAC_ADDRESS, bootif, NULL); diff --git a/src/nm-initrd-generator/nmi-dt-reader.c b/src/nm-initrd-generator/nmi-dt-reader.c index 554f5c4d..99fe25a2 100644 --- a/src/nm-initrd-generator/nmi-dt-reader.c +++ b/src/nm-initrd-generator/nmi-dt-reader.c @@ -248,6 +248,8 @@ nmi_dt_reader_parse(const char *sysfs_dir) NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_CONNECTION_ID, "OpenFirmware Connection", + NM_SETTING_CONNECTION_AUTOCONNECT_PRIORITY, + NMI_AUTOCONNECT_PRIORITY_FIRMWARE, NULL)); s_ip4 = nm_setting_ip4_config_new(); diff --git a/src/nm-initrd-generator/nmi-ibft-reader.c b/src/nm-initrd-generator/nmi-ibft-reader.c index 5e4b1bb3..3f30e531 100644 --- a/src/nm-initrd-generator/nmi-ibft-reader.c +++ b/src/nm-initrd-generator/nmi-ibft-reader.c @@ -328,6 +328,8 @@ connection_setting_add(GHashTable *nic, id, NM_SETTING_CONNECTION_INTERFACE_NAME, NULL, + NM_SETTING_CONNECTION_AUTOCONNECT_PRIORITY, + NMI_AUTOCONNECT_PRIORITY_FIRMWARE, NULL); g_free(uuid); diff --git a/src/nm-initrd-generator/tests/test-cmdline-reader.c b/src/nm-initrd-generator/tests/test-cmdline-reader.c index d7b7b3cb..977e58b9 100644 --- a/src/nm-initrd-generator/tests/test-cmdline-reader.c +++ b/src/nm-initrd-generator/tests/test-cmdline-reader.c @@ -13,6 +13,7 @@ #include <sys/socket.h> #include "libnm-core-intern/nm-core-internal.h" +#include "libnm-glib-aux/nm-uuid.h" #include "nm-initrd-generator/nm-initrd-generator.h" @@ -114,6 +115,9 @@ test_auto(void) g_assert_cmpint(nm_setting_connection_get_wait_device_timeout(s_con), ==, -1); g_assert(nm_setting_connection_get_autoconnect(s_con)); + g_assert_cmpint(nm_setting_connection_get_autoconnect_priority(s_con), + ==, + NMI_AUTOCONNECT_PRIORITY_CMDLINE); s_wired = nm_connection_get_setting_wired(connection); g_assert(s_wired); @@ -174,6 +178,9 @@ test_dhcp_with_hostname(void) g_assert_cmpint(nm_setting_connection_get_wait_device_timeout(s_con), ==, -1); g_assert(nm_setting_connection_get_autoconnect(s_con)); + g_assert_cmpint(nm_setting_connection_get_autoconnect_priority(s_con), + ==, + NMI_AUTOCONNECT_PRIORITY_CMDLINE); s_wired = nm_connection_get_setting_wired(connection); g_assert(s_wired); @@ -219,6 +226,9 @@ test_dhcp_with_mtu(void) g_assert_cmpint(nm_setting_connection_get_wait_device_timeout(s_con), ==, -1); g_assert(nm_setting_connection_get_autoconnect(s_con)); + g_assert_cmpint(nm_setting_connection_get_autoconnect_priority(s_con), + ==, + NMI_AUTOCONNECT_PRIORITY_CMDLINE); s_wired = nm_connection_get_setting_wired(connection); g_assert(s_wired); @@ -279,6 +289,9 @@ test_dhcp_timeout(void) g_assert_cmpint(nm_setting_connection_get_wait_device_timeout(s_con), ==, -1); g_assert_cmpint(nm_setting_connection_get_autoconnect_retries(s_con), ==, 1); g_assert(nm_setting_connection_get_autoconnect(s_con)); + g_assert_cmpint(nm_setting_connection_get_autoconnect_priority(s_con), + ==, + NMI_AUTOCONNECT_PRIORITY_CMDLINE); s_ip4 = nm_connection_get_setting_ip4_config(connection); g_assert(s_ip4); @@ -1652,7 +1665,11 @@ test_ibft_ip_dev(void) { const char *const *ARGV = NM_MAKE_STRV("ip=eth0:ibft"); NMSettingConnection *s_con; - gs_unref_object NMConnection *connection = NULL; + gs_unref_object NMConnection *connection = NULL; + const char *s_hwaddr = "00:53:00:ab:00:01"; + const char *s_vlanid = "666"; + const char *s_ipaddr = "2001:0db8:0000:0000:0000:0000:0000:0002"; + gs_free char *expected_uuid = NULL; connection = _parse_con(ARGV, "eth0"); @@ -1662,6 +1679,17 @@ test_ibft_ip_dev(void) ==, NM_SETTING_VLAN_SETTING_NAME); g_assert_cmpstr(nm_setting_connection_get_interface_name(s_con), ==, NULL); + + expected_uuid = nm_uuid_generate_from_strings("ibft", + s_hwaddr, + s_vlanid ? "V" : "v", + s_vlanid ? s_vlanid : "", + s_ipaddr ? "A" : "DHCP", + s_ipaddr ? s_ipaddr : "", + NULL); + + g_assert_cmpstr(expected_uuid, ==, "16d9bd1c-e2ab-31ef-9196-860078e81a23"); + g_assert_cmpstr(nm_connection_get_uuid(connection), ==, expected_uuid); } static void diff --git a/src/nm-initrd-generator/tests/test-ibft-reader.c b/src/nm-initrd-generator/tests/test-ibft-reader.c index 55925a9a..4aa4d7f3 100644 --- a/src/nm-initrd-generator/tests/test-ibft-reader.c +++ b/src/nm-initrd-generator/tests/test-ibft-reader.c @@ -72,6 +72,9 @@ test_read_ibft_dhcp(void) g_assert_cmpstr(nm_setting_connection_get_interface_name(s_con), ==, NULL); g_assert_cmpint(nm_setting_connection_get_timestamp(s_con), ==, 0); g_assert(nm_setting_connection_get_autoconnect(s_con)); + g_assert_cmpint(nm_setting_connection_get_autoconnect_priority(s_con), + ==, + NMI_AUTOCONNECT_PRIORITY_FIRMWARE); s_wired = nm_connection_get_setting_wired(connection); g_assert(s_wired); @@ -121,6 +124,9 @@ test_read_ibft_static(void) g_assert_cmpstr(nm_setting_connection_get_interface_name(s_con), ==, NULL); g_assert_cmpint(nm_setting_connection_get_timestamp(s_con), ==, 0); g_assert(nm_setting_connection_get_autoconnect(s_con)); + g_assert_cmpint(nm_setting_connection_get_autoconnect_priority(s_con), + ==, + NMI_AUTOCONNECT_PRIORITY_FIRMWARE); s_wired = nm_connection_get_setting_wired(connection); g_assert(s_wired); |