diff options
| author | Michael Biebl <biebl@debian.org> | 2023-03-09 19:06:14 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2023-03-09 19:06:14 +0100 |
| commit | dfaaf221cfee4ffcc507d793dae051d402646679 (patch) | |
| tree | c218fc9b1ef10cfa7d2acf0ce401b6d97db2401f /src | |
| parent | b22a7b55d0bc5a7999dccaeacdde745f5ace9d66 (diff) | |
New upstream version 1.42.4 upstream/1.42.4
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/devices/nm-device-ip-tunnel.c | 4 | ||||
| -rw-r--r-- | src/core/dns/nm-dns-dnsmasq.c | 3 | ||||
| -rw-r--r-- | src/core/nm-config-data.c | 24 | ||||
| -rw-r--r-- | src/core/nm-ip-config.c | 2 | ||||
| -rw-r--r-- | src/core/platform/tests/test-common.c | 8 | ||||
| -rw-r--r-- | src/core/settings/nm-settings.c | 8 | ||||
| -rw-r--r-- | src/libnm-core-impl/nm-setting-ip4-config.c | 2 | ||||
| -rw-r--r-- | src/libnm-core-impl/nm-setting-ip6-config.c | 2 | ||||
| -rw-r--r-- | src/libnm-core-public/nm-version-macros.h | 2 | ||||
| -rw-r--r-- | src/libnm-platform/nm-linux-platform.c | 37 | ||||
| -rw-r--r-- | src/libnm-platform/nm-platform.c | 2 | ||||
| -rw-r--r-- | src/libnm-platform/nmp-global-tracker.c | 2 |
12 files changed, 58 insertions, 38 deletions
diff --git a/src/core/devices/nm-device-ip-tunnel.c b/src/core/devices/nm-device-ip-tunnel.c index 5e5ba632..a5760bf4 100644 --- a/src/core/devices/nm-device-ip-tunnel.c +++ b/src/core/devices/nm-device-ip-tunnel.c @@ -296,7 +296,7 @@ clear: if (lnk->ikey) input_key = g_strdup_printf("%u", lnk->ikey); if (lnk->okey) - input_key = g_strdup_printf("%u", lnk->okey); + output_key = g_strdup_printf("%u", lnk->okey); } else if (priv->mode == NM_IP_TUNNEL_MODE_VTI6) { const NMPlatformLnkVti6 *lnk; @@ -313,7 +313,7 @@ clear: if (lnk->ikey) input_key = g_strdup_printf("%u", lnk->ikey); if (lnk->okey) - input_key = g_strdup_printf("%u", lnk->okey); + output_key = g_strdup_printf("%u", lnk->okey); } else g_return_if_reached(); diff --git a/src/core/dns/nm-dns-dnsmasq.c b/src/core/dns/nm-dns-dnsmasq.c index 8ae1bb96..05aeff49 100644 --- a/src/core/dns/nm-dns-dnsmasq.c +++ b/src/core/dns/nm-dns-dnsmasq.c @@ -922,7 +922,8 @@ create_update_args(NMDnsDnsmasq *self, if (global_config) add_global_config(self, &servers, global_config); - else { + + if (!global_config || !nm_global_dns_config_lookup_domain(global_config, "*")) { c_list_for_each_entry (ip_data, ip_data_lst_head, ip_data_lst) add_ip_config(self, &servers, ip_data); } diff --git a/src/core/nm-config-data.c b/src/core/nm-config-data.c index c6ab998f..ff44bc46 100644 --- a/src/core/nm-config-data.c +++ b/src/core/nm-config-data.c @@ -1463,21 +1463,23 @@ global_dns_equal(NMGlobalDnsConfig *old, NMGlobalDnsConfig *new) if ((!old->domains || !new->domains) && old->domains != new->domains) return FALSE; - if (g_hash_table_size(old->domains) != g_hash_table_size(new->domains)) + if (nm_g_hash_table_size(old->domains) != nm_g_hash_table_size(new->domains)) return FALSE; - g_hash_table_iter_init(&iter, old->domains); - while (g_hash_table_iter_next(&iter, &key, &value_old)) { - value_new = g_hash_table_lookup(new->domains, key); - if (!value_new) - return FALSE; + if (old->domains) { + g_hash_table_iter_init(&iter, old->domains); + while (g_hash_table_iter_next(&iter, &key, &value_old)) { + value_new = g_hash_table_lookup(new->domains, key); + if (!value_new) + return FALSE; - domain_old = value_old; - domain_new = value_new; + domain_old = value_old; + domain_new = value_new; - if (!nm_strv_equal(domain_old->options, domain_new->options) - || !nm_strv_equal(domain_old->servers, domain_new->servers)) - return FALSE; + if (!nm_strv_equal(domain_old->options, domain_new->options) + || !nm_strv_equal(domain_old->servers, domain_new->servers)) + return FALSE; + } } return TRUE; diff --git a/src/core/nm-ip-config.c b/src/core/nm-ip-config.c index f87840cc..bec67d9a 100644 --- a/src/core/nm-ip-config.c +++ b/src/core/nm-ip-config.c @@ -368,7 +368,7 @@ get_property_ip4(GObject *object, guint prop_id, GValue *value, GParamSpec *pspe continue; if (prop_id == PROP_IP4_NAMESERVERS) - g_variant_builder_add(&builder, "u", &a); + g_variant_builder_add(&builder, "u", a); else { GVariantBuilder nested_builder; diff --git a/src/core/platform/tests/test-common.c b/src/core/platform/tests/test-common.c index a37982fc..571fedfe 100644 --- a/src/core/platform/tests/test-common.c +++ b/src/core/platform/tests/test-common.c @@ -1891,9 +1891,13 @@ nmtstp_ip4_address_add(NMPlatform *platform, external_command, TRUE, ifindex, - (NMIPAddr *) &address, + &((NMIPAddr){ + .addr4 = address, + }), plen, - (NMIPAddr *) &peer_address, + &((NMIPAddr){ + .addr4 = peer_address, + }), lifetime, preferred, flags, diff --git a/src/core/settings/nm-settings.c b/src/core/settings/nm-settings.c index 63476c3c..9995b490 100644 --- a/src/core/settings/nm-settings.c +++ b/src/core/settings/nm-settings.c @@ -2009,6 +2009,7 @@ nm_settings_update_connection(NMSettings *self, const char *uuid; gboolean tombstone_in_memory = FALSE; gboolean tombstone_on_disk = FALSE; + NMSettingsConnectionIntFlags new_flags; g_return_val_if_fail(NM_IS_SETTINGS(self), FALSE); g_return_val_if_fail(NM_IS_SETTINGS_CONNECTION(sett_conn), FALSE); @@ -2228,13 +2229,16 @@ nm_settings_update_connection(NMSettings *self, } } + new_flags = nm_settings_connection_get_flags(sett_conn); + new_flags = NM_FLAGS_ASSIGN_MASK(new_flags, sett_mask, sett_flags); + if (!update_storage) { success = _add_connection_to_first_plugin(self, plugin_name, sett_conn_entry, connection, new_in_memory, - sett_flags, + new_flags, new_shadowed_storage_filename, new_shadowed_owned, &new_storage, @@ -2245,7 +2249,7 @@ nm_settings_update_connection(NMSettings *self, success = _update_connection_to_plugin(self, update_storage, connection, - sett_flags, + new_flags, update_reason, new_shadowed_storage_filename, new_shadowed_owned, diff --git a/src/libnm-core-impl/nm-setting-ip4-config.c b/src/libnm-core-impl/nm-setting-ip4-config.c index 83727ea3..7819c2e8 100644 --- a/src/libnm-core-impl/nm-setting-ip4-config.c +++ b/src/libnm-core-impl/nm-setting-ip4-config.c @@ -1152,7 +1152,7 @@ nm_setting_ip4_config_class_init(NMSettingIP4ConfigClass *klass) * </listitem> * <listitem> * <para><literal>"type"</literal> - one of <literal>unicast</literal>, <literal>local</literal>, <literal>blackhole</literal>, - * <literal>unavailable</literal>, <literal>prohibit</literal>, <literal>throw</literal>. + * <literal>unreachable</literal>, <literal>prohibit</literal>, <literal>throw</literal>. * The default is <literal>unicast</literal>.</para> * </listitem> * <listitem> diff --git a/src/libnm-core-impl/nm-setting-ip6-config.c b/src/libnm-core-impl/nm-setting-ip6-config.c index 54f0967c..573211b2 100644 --- a/src/libnm-core-impl/nm-setting-ip6-config.c +++ b/src/libnm-core-impl/nm-setting-ip6-config.c @@ -1138,7 +1138,7 @@ nm_setting_ip6_config_class_init(NMSettingIP6ConfigClass *klass) * </listitem> * <listitem> * <para><literal>"type"</literal> - one of <literal>unicast</literal>, <literal>local</literal>, <literal>blackhole</literal>, - * <literal>unavailable</literal>, <literal>prohibit</literal>, <literal>throw</literal>. + * <literal>unreachable</literal>, <literal>prohibit</literal>, <literal>throw</literal>. * The default is <literal>unicast</literal>.</para> * </listitem> * <listitem> diff --git a/src/libnm-core-public/nm-version-macros.h b/src/libnm-core-public/nm-version-macros.h index 18ad7cf6..159d3bd8 100644 --- a/src/libnm-core-public/nm-version-macros.h +++ b/src/libnm-core-public/nm-version-macros.h @@ -30,7 +30,7 @@ * Evaluates to the micro version number of NetworkManager which this source * compiled against. */ -#define NM_MICRO_VERSION (2) +#define NM_MICRO_VERSION (4) /** * NM_CHECK_VERSION: diff --git a/src/libnm-platform/nm-linux-platform.c b/src/libnm-platform/nm-linux-platform.c index d4ab36f9..30ad1275 100644 --- a/src/libnm-platform/nm-linux-platform.c +++ b/src/libnm-platform/nm-linux-platform.c @@ -9213,15 +9213,27 @@ get_ext_data(NMPlatform *platform, int ifindex) return obj->_link.ext_data; } +#define get_ext_data_check(platform, ifindex, is_check) \ + ({ \ + GObject *_obj = get_ext_data((platform), (ifindex)); \ + \ + _obj &&is_check(_obj) ? ((gpointer) _obj) : NULL; \ + }) + /*****************************************************************************/ -#define WIFI_GET_WIFI_DATA_NETNS(wifi_data, platform, ifindex, retval) \ - nm_auto_pop_netns NMPNetns *netns = NULL; \ - NMWifiUtils *wifi_data; \ - if (!nm_platform_netns_push(platform, &netns)) \ - return retval; \ - wifi_data = NM_WIFI_UTILS(get_ext_data(platform, ifindex)); \ - if (!wifi_data) \ +#define WIFI_GET_WIFI_DATA(wifi_data, platform, ifindex, retval) \ + NMWifiUtils *wifi_data = get_ext_data_check(platform, ifindex, NM_IS_WIFI_UTILS); \ + if (!wifi_data) \ + return retval; + +#define WIFI_GET_WIFI_DATA_NETNS(wifi_data, platform, ifindex, retval) \ + nm_auto_pop_netns NMPNetns *netns = NULL; \ + NMWifiUtils *wifi_data; \ + if (!nm_platform_netns_push(platform, &netns)) \ + return retval; \ + wifi_data = get_ext_data_check(platform, ifindex, NM_IS_WIFI_UTILS); \ + if (!wifi_data) \ return retval; static gboolean @@ -9390,9 +9402,9 @@ mesh_set_ssid(NMPlatform *platform, int ifindex, const guint8 *ssid, gsize len) /*****************************************************************************/ -#define WPAN_GET_WPAN_DATA(wpan_data, platform, ifindex, retval) \ - NMWpanUtils *wpan_data = NM_WPAN_UTILS(get_ext_data(platform, ifindex)); \ - if (!wpan_data) \ +#define WPAN_GET_WPAN_DATA(wpan_data, platform, ifindex, retval) \ + NMWpanUtils *wpan_data = get_ext_data_check(platform, ifindex, NM_IS_WPAN_UTILS); \ + if (!wpan_data) \ return retval; static guint16 @@ -9444,10 +9456,7 @@ link_get_wake_on_lan(NMPlatform *platform, int ifindex) if (type == NM_LINK_TYPE_ETHERNET) return nmp_utils_ethtool_get_wake_on_lan(ifindex); else if (type == NM_LINK_TYPE_WIFI) { - NMWifiUtils *wifi_data = NM_WIFI_UTILS(get_ext_data(platform, ifindex)); - - if (!wifi_data) - return FALSE; + WIFI_GET_WIFI_DATA(wifi_data, platform, ifindex, FALSE); return !NM_IN_SET(nm_wifi_utils_get_wake_on_wlan(wifi_data), _NM_SETTING_WIRELESS_WAKE_ON_WLAN_NONE, diff --git a/src/libnm-platform/nm-platform.c b/src/libnm-platform/nm-platform.c index c80d9648..2e9e940c 100644 --- a/src/libnm-platform/nm-platform.c +++ b/src/libnm-platform/nm-platform.c @@ -7951,6 +7951,7 @@ int nm_platform_lnk_bond_cmp(const NMPlatformLnkBond *a, const NMPlatformLnkBond *b) { NM_CMP_SELF(a, b); + NM_CMP_FIELD(a, b, arp_ip_targets_num); NM_CMP_FIELD_MEMCMP_LEN(a, b, arp_ip_target, @@ -7972,7 +7973,6 @@ nm_platform_lnk_bond_cmp(const NMPlatformLnkBond *a, const NMPlatformLnkBond *b) NM_CMP_FIELD_MEMCMP(a, b, ad_actor_system); NM_CMP_FIELD(a, b, ad_select); NM_CMP_FIELD(a, b, all_ports_active); - NM_CMP_FIELD(a, b, arp_ip_targets_num); NM_CMP_FIELD(a, b, fail_over_mac); NM_CMP_FIELD(a, b, lacp_rate); NM_CMP_FIELD(a, b, num_grat_arp); diff --git a/src/libnm-platform/nmp-global-tracker.c b/src/libnm-platform/nmp-global-tracker.c index 122ba0ea..3fd31e4e 100644 --- a/src/libnm-platform/nmp-global-tracker.c +++ b/src/libnm-platform/nmp-global-tracker.c @@ -26,7 +26,7 @@ * view. That is mainly, because such objects are themselves tied to an ifindex. * * However, for certain objects that's not the case. For example, policy routing - * rules, certain route types (blackhole, unavailable, prohibit, throw) and MPTCP + * rules, certain route types (blackhole, unreachable, prohibit, throw) and MPTCP * endpoints require a holistic view of the system. That is, because rules and * these route types have no ifindex. For MPTCP endpoints, they have an ifindex, * however we can only configure a small number of them at a time, so we need a |