diff options
| author | Michael Biebl <biebl@debian.org> | 2024-05-31 23:13:10 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2024-05-31 23:13:10 +0200 |
| commit | baef747c9365b6044db3c2dfbb859652bdde1d76 (patch) | |
| tree | 258affdacf1e997e3a0ab5a768797f085b3008ad | |
| parent | 88625ab09bf9c6d8f0d5042fcde398a5abfd1da6 (diff) | |
New upstream version 1.48.0 upstream/1.48.0
29 files changed, 155 insertions, 135 deletions
diff --git a/NEWS b/NEWS index baf5a7af..e403b62f 100644 --- a/NEWS +++ b/NEWS @@ -3,11 +3,6 @@ NetworkManager-1.48 Overview of changes since NetworkManager-1.46 ============================================= -This is a snapshot of NetworkManager development. The API is -subject to change and not guaranteed to be compatible with -the later release. -USE AT YOUR OWN RISK. NOT RECOMMENDED FOR PRODUCTION USE! - * Building with autotools is now deprecated and will be completely removed in the next development cycle. We recommend using meson to build NetworkManager -- for basic setup, see the CONTRIBUTING.md file. @@ -27,6 +22,11 @@ USE AT YOUR OWN RISK. NOT RECOMMENDED FOR PRODUCTION USE! when IPv6 device address was not explicitly passed on by ModemManager * Fix a performance issue that was leading to 100% CPU usage by NetworkManager if external programs were doing a big amount of routes updates. +* Patch-level development releases (i.e. 1.48.1-dev) won't be used anymore. + From now on, all the patch releases whithin a stable branch will be normal + releases, like 1.48.0, 1.48.1, 1.48.2, 1.48.3 and so on. + Odd numbers in the minor version number still indicates if it's a development + branch like 1.49 or a stable one like 1.48. ============================================= NetworkManager-1.46 diff --git a/configure.ac b/configure.ac index d63edb28..56ffa24a 100644 --- a/configure.ac +++ b/configure.ac @@ -7,8 +7,8 @@ dnl - add corresponding NM_VERSION_x_y_z macros in dnl "shared/nm-version-macros.h.in" dnl - update number in meson.build m4_define([nm_major_version], [1]) -m4_define([nm_minor_version], [47]) -m4_define([nm_micro_version], [91]) +m4_define([nm_minor_version], [48]) +m4_define([nm_micro_version], [0]) m4_define([nm_version], [nm_major_version.nm_minor_version.nm_micro_version]) diff --git a/contrib/fedora/rpm/release.sh b/contrib/fedora/rpm/release.sh index 809810f0..fd48f487 100755 --- a/contrib/fedora/rpm/release.sh +++ b/contrib/fedora/rpm/release.sh @@ -14,12 +14,11 @@ # - "rc" : further release candidates on RC branch (e.g. from "nm-1-26" branch # tag "1.26-rc2" with version number 1.25.91). # - "major" : on stable branch do a major release (e.g. on "nm-1-26" branch -# release "1.26.0", followed by "1.26.1-dev"). +# release "1.26.0"). # You should do a "major-post" release right a "major" release. # - "major-post": after a "major" release, merge the release branch with main and # do another devel snapshot on main (e.g. do "1.27.1-dev" release). -# - "minor" : on a stable branch do a minor release (e.g. "1.26.4" on "nm-1-26" -# branch and bump to "1.26.5-dev"). +# - "minor" : on a stable branch do a minor release (e.g. "1.26.4" on "nm-1-26"). # # Requisites: # @@ -296,8 +295,7 @@ RC_VERSION= RELEASE_BRANCH= case "$RELEASE_MODE" in minor) - number_is_even "${VERSION_ARR[1]}" && - number_is_odd "${VERSION_ARR[2]}" || die "cannot do minor release on top of version $VERSION_STR" + number_is_even "${VERSION_ARR[1]}" || die "cannot do minor release on top of version $VERSION_STR" [ "$CUR_BRANCH" != main ] || die "cannot do a minor release on main" ;; devel) @@ -431,19 +429,13 @@ case "$RELEASE_MODE" in minor) set_version_number "${VERSION_ARR[0]}" "${VERSION_ARR[1]}" $(("${VERSION_ARR[2]}" + 1)) git commit -m "release: bump version to ${VERSION_ARR[0]}.${VERSION_ARR[1]}.$(("${VERSION_ARR[2]}" + 1))" -a || die "failed to commit release" - set_version_number "${VERSION_ARR[0]}" "${VERSION_ARR[1]}" $(("${VERSION_ARR[2]}" + 2)) - git commit -m "release: bump version to ${VERSION_ARR[0]}.${VERSION_ARR[1]}.$(("${VERSION_ARR[2]}" + 2)) (development)" -a || die "failed to commit devel version bump" b="${VERSION_ARR[0]}.${VERSION_ARR[1]}.$(("${VERSION_ARR[2]}" + 1))" - git tag -s -a -m "Tag $b" "$b" HEAD~ || die "failed to tag release" + git tag -s -a -m "Tag $b" "$b" HEAD || die "failed to tag release" BRANCHES+=("$b") CLEANUP_REFS+=("refs/tags/$b") BUILD_TAG="$b" - b="${VERSION_ARR[0]}.${VERSION_ARR[1]}.$(("${VERSION_ARR[2]}" + 2))" - git tag -s -a -m "Tag $b (development)" "$b-dev" HEAD || die "failed to tag devel version" - BRANCHES+=("$b-dev") - CLEANUP_REFS+=("refs/tags/$b-dev") - TAR_VERSION="$BUILD_TAG" + TAR_VERSION="$b" ;; devel) set_version_number "${VERSION_ARR[0]}" "${VERSION_ARR[1]}" $(("${VERSION_ARR[2]}" + 1)) @@ -482,20 +474,12 @@ case "$RELEASE_MODE" in ;; major) b="${VERSION_ARR[0]}.$((${VERSION_ARR[1]} + 1)).0" - b2="${VERSION_ARR[0]}.$((${VERSION_ARR[1]} + 1)).1" - set_version_number "${VERSION_ARR[0]}" "$((${VERSION_ARR[1]} + 1))" 0 git commit -m "release: bump version to $b" -a || die "failed to commit major version bump" + git tag -s -a -m "Tag $b" "$b" HEAD || die "failed to tag release" BRANCHES+=("$b") CLEANUP_REFS+=("refs/tags/$b") - - set_version_number "${VERSION_ARR[0]}" "$((${VERSION_ARR[1]} + 1))" 1 - git commit -m "release: bump version to $b2 (development)" -a || die "failed to commit another bump after major version bump" - git tag -s -a -m "Tag $b (development)" "$b2-dev" HEAD || die "failed to tag release" - BRANCHES+=("$b2-dev") - CLEANUP_REFS+=("refs/tags/$b2-dev") - BUILD_TAG="$b" TAR_VERSION="$b" ;; diff --git a/docs/api/html/index.html b/docs/api/html/index.html index dd6c1646..7181a19c 100644 --- a/docs/api/html/index.html +++ b/docs/api/html/index.html @@ -16,7 +16,7 @@ <div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">NetworkManager Reference Manual</p></th></tr></table></div> <div><p class="releaseinfo"> - for NetworkManager 1.47.91 + for NetworkManager 1.48.0 The latest version of this documentation can be found on-line at <a class="ulink" href="https://networkmanager.dev/docs/api/latest/" target="_top">https://networkmanager.dev/docs/api/latest/</a>. diff --git a/docs/libnm/html/index.html b/docs/libnm/html/index.html index e179ee65..2107b576 100644 --- a/docs/libnm/html/index.html +++ b/docs/libnm/html/index.html @@ -15,7 +15,7 @@ <div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libnm Reference Manual</p></th></tr></table></div> <div><p class="releaseinfo"> - for libnm 1.47.91 + for libnm 1.48.0 The latest version of this documentation can be found on-line at <a class="ulink" href="https://networkmanager.dev/docs/libnm/latest/" target="_top">https://networkmanager.dev/docs/libnm/latest/</a>. diff --git a/docs/libnm/html/libnm-nm-version-macros.html b/docs/libnm/html/libnm-nm-version-macros.html index e86fdaa7..e5b743ad 100644 --- a/docs/libnm/html/libnm-nm-version-macros.html +++ b/docs/libnm/html/libnm-nm-version-macros.html @@ -261,7 +261,7 @@ is compiled against.</p> <hr> <div class="refsect2"> <a name="NM-MINOR-VERSION:CAPS"></a><h3>NM_MINOR_VERSION</h3> -<pre class="programlisting">#define NM_MINOR_VERSION (47) +<pre class="programlisting">#define NM_MINOR_VERSION (48) </pre> <p>Evaluates to the minor version number of NetworkManager which this source is compiled against.</p> @@ -269,7 +269,7 @@ is compiled against.</p> <hr> <div class="refsect2"> <a name="NM-MICRO-VERSION:CAPS"></a><h3>NM_MICRO_VERSION</h3> -<pre class="programlisting">#define NM_MICRO_VERSION (91) +<pre class="programlisting">#define NM_MICRO_VERSION (0) </pre> <p>Evaluates to the micro version number of NetworkManager which this source compiled against.</p> diff --git a/docs/libnm/html/usage.html b/docs/libnm/html/usage.html index 14fd8258..8f2916ba 100644 --- a/docs/libnm/html/usage.html +++ b/docs/libnm/html/usage.html @@ -96,7 +96,7 @@ </p> <pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>cc $(pkg-config --libs --cflags libnm) -o hello-nm hello-nm.c</code></strong> <code class="prompt">$ </code><strong class="userinput"><code>./hello-nm</code></strong> - NetworkManager version: 1.47.91 + NetworkManager version: 1.48.0 <code class="prompt">$ </code></pre> <p> diff --git a/man/NetworkManager-dispatcher.8 b/man/NetworkManager-dispatcher.8 index c5c19de5..77c1f48d 100644 --- a/man/NetworkManager-dispatcher.8 +++ b/man/NetworkManager-dispatcher.8 @@ -2,9 +2,9 @@ .\" Title: NetworkManager-dispatcher .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: Network management daemons -.\" Source: NetworkManager-dispatcher 1.47.91 +.\" Source: NetworkManager-dispatcher 1.48.0 .\" Language: English .\" .TH "NETWORKMANAGER\-DISPATCHER" "8" "" "NetworkManager\-dispatcher 1\&" "Network management daemons" diff --git a/man/NetworkManager-wait-online.service.8 b/man/NetworkManager-wait-online.service.8 index 9b0c45b4..00ab1b54 100644 --- a/man/NetworkManager-wait-online.service.8 +++ b/man/NetworkManager-wait-online.service.8 @@ -2,9 +2,9 @@ .\" Title: NetworkManager-wait-online.service .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: Network management daemons -.\" Source: NetworkManager-wait-online.service 1.47.91 +.\" Source: NetworkManager-wait-online.service 1.48.0 .\" Language: English .\" .TH "NETWORKMANAGER\-WAIT\-ONLINE\&" "8" "" "NetworkManager\-wait\-online\&" "Network management daemons" diff --git a/man/NetworkManager.8 b/man/NetworkManager.8 index 6a8adfd8..3ba4bae7 100644 --- a/man/NetworkManager.8 +++ b/man/NetworkManager.8 @@ -2,12 +2,12 @@ .\" Title: NetworkManager .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: Network management daemons -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.47\&.91" "Network management daemons" +.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.48\&.0" "Network management daemons" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/NetworkManager.conf.5 b/man/NetworkManager.conf.5 index 479198fa..64e9dce7 100644 --- a/man/NetworkManager.conf.5 +++ b/man/NetworkManager.conf.5 @@ -2,12 +2,12 @@ .\" Title: NetworkManager.conf .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: Configuration -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.47\&.91" "Configuration" +.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.48\&.0" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-cloud-setup.8 b/man/nm-cloud-setup.8 index 9cede79d..80620a85 100644 --- a/man/nm-cloud-setup.8 +++ b/man/nm-cloud-setup.8 @@ -2,12 +2,12 @@ .\" Title: nm-cloud-setup .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: Automatic Network Configuration in Cloud with NetworkManager -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NM\-CLOUD\-SETUP" "8" "" "NetworkManager 1\&.47\&.91" "Automatic Network Configuratio" +.TH "NM\-CLOUD\-SETUP" "8" "" "NetworkManager 1\&.48\&.0" "Automatic Network Configuratio" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-initrd-generator.8 b/man/nm-initrd-generator.8 index 38a79026..38b6e0b4 100644 --- a/man/nm-initrd-generator.8 +++ b/man/nm-initrd-generator.8 @@ -2,12 +2,12 @@ .\" Title: nm-initrd-generator .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: System Administration -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.47\&.91" "System Administration" +.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.48\&.0" "System Administration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-online.1 b/man/nm-online.1 index 908a425c..54722187 100644 --- a/man/nm-online.1 +++ b/man/nm-online.1 @@ -2,12 +2,12 @@ .\" Title: nm-online .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.47\&.91" "General Commands Manual" +.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.48\&.0" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-openvswitch.7 b/man/nm-openvswitch.7 index 1df2ade0..393c356b 100644 --- a/man/nm-openvswitch.7 +++ b/man/nm-openvswitch.7 @@ -2,12 +2,12 @@ .\" Title: nm-openvswitch .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: Open vSwitch support overview -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.47\&.91" "Open vSwitch support overview" +.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.48\&.0" "Open vSwitch support overview" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-dbus.5 b/man/nm-settings-dbus.5 index 7c463259..349e3a65 100644 --- a/man/nm-settings-dbus.5 +++ b/man/nm-settings-dbus.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-dbus .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: Configuration -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NM\-SETTINGS\-DBUS" "5" "" "NetworkManager 1\&.47\&.91" "Configuration" +.TH "NM\-SETTINGS\-DBUS" "5" "" "NetworkManager 1\&.48\&.0" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-ifcfg-rh.5 b/man/nm-settings-ifcfg-rh.5 index 5e492351..87054bda 100644 --- a/man/nm-settings-ifcfg-rh.5 +++ b/man/nm-settings-ifcfg-rh.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-ifcfg-rh .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: Configuration -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.47\&.91" "Configuration" +.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.48\&.0" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-keyfile.5 b/man/nm-settings-keyfile.5 index 26bc01a4..b55d07f9 100644 --- a/man/nm-settings-keyfile.5 +++ b/man/nm-settings-keyfile.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-keyfile .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: Configuration -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.47\&.91" "Configuration" +.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.48\&.0" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-nmcli.5 b/man/nm-settings-nmcli.5 index b3799a15..8493af18 100644 --- a/man/nm-settings-nmcli.5 +++ b/man/nm-settings-nmcli.5 @@ -2,12 +2,12 @@ .\" Title: nm-settings-nmcli .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: Configuration -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NM\-SETTINGS\-NMCLI" "5" "" "NetworkManager 1\&.47\&.91" "Configuration" +.TH "NM\-SETTINGS\-NMCLI" "5" "" "NetworkManager 1\&.48\&.0" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmcli-examples.7 b/man/nmcli-examples.7 index dfc876e5..c24da39b 100644 --- a/man/nmcli-examples.7 +++ b/man/nmcli-examples.7 @@ -2,12 +2,12 @@ .\" Title: nmcli-examples .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: Examples -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.47\&.91" "Examples" +.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.48\&.0" "Examples" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmcli.1 b/man/nmcli.1 index e72fed1b..b8df9882 100644 --- a/man/nmcli.1 +++ b/man/nmcli.1 @@ -2,12 +2,12 @@ .\" Title: nmcli .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NMCLI" "1" "" "NetworkManager 1\&.47\&.91" "General Commands Manual" +.TH "NMCLI" "1" "" "NetworkManager 1\&.48\&.0" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmtui.1 b/man/nmtui.1 index bee23197..52d0371e 100644 --- a/man/nmtui.1 +++ b/man/nmtui.1 @@ -2,12 +2,12 @@ .\" Title: nmtui .\" Author: .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> -.\" Date: 05/16/2024 +.\" Date: 05/31/2024 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.47.91 +.\" Source: NetworkManager 1.48.0 .\" Language: English .\" -.TH "NMTUI" "1" "" "NetworkManager 1\&.47\&.91" "General Commands Manual" +.TH "NMTUI" "1" "" "NetworkManager 1\&.48\&.0" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/meson.build b/meson.build index 2466d69a..da78cdba 100644 --- a/meson.build +++ b/meson.build @@ -6,7 +6,7 @@ project( # - add corresponding NM_VERSION_x_y_z macros in # "src/libnm-core-public/nm-version-macros.h.in" # - update number in configure.ac - version: '1.47.91', + version: '1.48.0', license: 'GPL2+', default_options: [ 'buildtype=debugoptimized', diff --git a/po/POTFILES.in b/po/POTFILES.in index 3fe753c9..d751aef3 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -89,6 +89,7 @@ src/libnm-core-impl/nm-setting-cdma.c src/libnm-core-impl/nm-setting-connection.c src/libnm-core-impl/nm-setting-dcb.c src/libnm-core-impl/nm-setting-ethtool.c +src/libnm-core-impl/nm-setting-generic.c src/libnm-core-impl/nm-setting-gsm.c src/libnm-core-impl/nm-setting-hsr.c src/libnm-core-impl/nm-setting-infiniband.c diff --git a/src/core/nm-config-data.c b/src/core/nm-config-data.c index d4498edd..5b330f24 100644 --- a/src/core/nm-config-data.c +++ b/src/core/nm-config-data.c @@ -849,7 +849,7 @@ nm_config_data_log(const NMConfigData *self, /* We require that the default values are grouped by their "group". * That is, all default values for a certain "group" are close to * each other in the list. Assert for that. */ - for (g2 = g + 1; g2 < groups_full->len; g2++) { + for (g2 = g + 1; g2 < G_N_ELEMENTS(default_values); g2++) { nm_assert(!nm_streq(default_values[g - 1].group, default_values[g2].group)); } } diff --git a/src/core/nm-l3-config-data.c b/src/core/nm-l3-config-data.c index a4647116..908c4d65 100644 --- a/src/core/nm-l3-config-data.c +++ b/src/core/nm-l3-config-data.c @@ -157,8 +157,8 @@ struct _NML3ConfigData { bool has_routes_with_type_local_6_set : 1; bool has_routes_with_type_local_4_val : 1; bool has_routes_with_type_local_6_val : 1; - bool dhcp_enabled_4 : 1; - bool dhcp_enabled_6 : 1; + bool allow_routes_without_address_4 : 1; + bool allow_routes_without_address_6 : 1; bool ndisc_hop_limit_set : 1; bool ndisc_reachable_time_msec_set : 1; @@ -678,26 +678,28 @@ nm_l3_config_data_new(NMDedupMultiIndex *multi_idx, int ifindex, NMIPConfigSourc self = g_slice_new(NML3ConfigData); *self = (NML3ConfigData){ - .ref_count = 1, - .ifindex = ifindex, - .multi_idx = nm_dedup_multi_index_ref(multi_idx), - .mdns = NM_SETTING_CONNECTION_MDNS_DEFAULT, - .llmnr = NM_SETTING_CONNECTION_LLMNR_DEFAULT, - .dns_over_tls = NM_SETTING_CONNECTION_DNS_OVER_TLS_DEFAULT, - .flags = NM_L3_CONFIG_DAT_FLAGS_NONE, - .metered = NM_TERNARY_DEFAULT, - .proxy_browser_only = NM_TERNARY_DEFAULT, - .proxy_method = NM_PROXY_CONFIG_METHOD_UNKNOWN, - .route_table_sync_4 = NM_IP_ROUTE_TABLE_SYNC_MODE_NONE, - .route_table_sync_6 = NM_IP_ROUTE_TABLE_SYNC_MODE_NONE, - .never_default_6 = NM_OPTION_BOOL_DEFAULT, - .never_default_4 = NM_OPTION_BOOL_DEFAULT, - .source = source, - .ip6_privacy = NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN, - .mptcp_flags = NM_MPTCP_FLAGS_NONE, - .ndisc_hop_limit_set = FALSE, - .ndisc_reachable_time_msec_set = FALSE, - .ndisc_retrans_timer_msec_set = FALSE, + .ref_count = 1, + .ifindex = ifindex, + .multi_idx = nm_dedup_multi_index_ref(multi_idx), + .mdns = NM_SETTING_CONNECTION_MDNS_DEFAULT, + .llmnr = NM_SETTING_CONNECTION_LLMNR_DEFAULT, + .dns_over_tls = NM_SETTING_CONNECTION_DNS_OVER_TLS_DEFAULT, + .flags = NM_L3_CONFIG_DAT_FLAGS_NONE, + .metered = NM_TERNARY_DEFAULT, + .proxy_browser_only = NM_TERNARY_DEFAULT, + .proxy_method = NM_PROXY_CONFIG_METHOD_UNKNOWN, + .route_table_sync_4 = NM_IP_ROUTE_TABLE_SYNC_MODE_NONE, + .route_table_sync_6 = NM_IP_ROUTE_TABLE_SYNC_MODE_NONE, + .never_default_6 = NM_OPTION_BOOL_DEFAULT, + .never_default_4 = NM_OPTION_BOOL_DEFAULT, + .source = source, + .ip6_privacy = NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN, + .mptcp_flags = NM_MPTCP_FLAGS_NONE, + .ndisc_hop_limit_set = FALSE, + .ndisc_reachable_time_msec_set = FALSE, + .ndisc_retrans_timer_msec_set = FALSE, + .allow_routes_without_address_4 = TRUE, + .allow_routes_without_address_6 = TRUE, }; _idx_type_init(&self->idx_addresses_4, NMP_OBJECT_TYPE_IP4_ADDRESS); @@ -1936,15 +1938,30 @@ nm_l3_config_data_set_mptcp_flags(NML3ConfigData *self, NMMptcpFlags mptcp_flags } gboolean -nm_l3_config_data_get_dhcp_enabled(const NML3ConfigData *self, int addr_family) +nm_l3_config_data_get_allow_routes_without_address(const NML3ConfigData *self, int addr_family) { const int IS_IPv4 = NM_IS_IPv4(addr_family); nm_assert(_NM_IS_L3_CONFIG_DATA(self, TRUE)); if (IS_IPv4) { - return self->dhcp_enabled_4; + return self->allow_routes_without_address_4; } else { - return self->dhcp_enabled_6; + return self->allow_routes_without_address_6; + } +} + +void +nm_l3_config_data_set_allow_routes_without_address(NML3ConfigData *self, + int addr_family, + gboolean value) +{ + const int IS_IPv4 = NM_IS_IPv4(addr_family); + + nm_assert(_NM_IS_L3_CONFIG_DATA(self, FALSE)); + if (IS_IPv4) { + self->allow_routes_without_address_4 = value; + } else { + self->allow_routes_without_address_6 = value; } } @@ -2758,18 +2775,18 @@ _init_from_connection_ip(NML3ConfigData *self, int addr_family, NMConnection *co method = nm_setting_ip_config_get_method(s_ip); if (IS_IPv4) { if (nm_streq(method, NM_SETTING_IP4_CONFIG_METHOD_AUTO)) { - self->dhcp_enabled_4 = TRUE; + self->allow_routes_without_address_4 = FALSE; } else { - self->dhcp_enabled_4 = FALSE; + self->allow_routes_without_address_4 = TRUE; } } else { method = nm_setting_ip_config_get_method(s_ip); if (NM_IN_STRSET(method, NM_SETTING_IP6_CONFIG_METHOD_AUTO, NM_SETTING_IP6_CONFIG_METHOD_DHCP)) { - self->dhcp_enabled_6 = TRUE; + self->allow_routes_without_address_6 = FALSE; } else { - self->dhcp_enabled_6 = FALSE; + self->allow_routes_without_address_6 = TRUE; } } @@ -3456,11 +3473,11 @@ nm_l3_config_data_merge(NML3ConfigData *self, self->dhcp_lease_x[0] = nm_dhcp_lease_ref(self->dhcp_lease_x[0]); self->dhcp_lease_x[1] = nm_dhcp_lease_ref(self->dhcp_lease_x[1]); } - if (src->dhcp_enabled_4) - self->dhcp_enabled_4 = TRUE; + if (!src->allow_routes_without_address_4) + self->allow_routes_without_address_4 = FALSE; - if (src->dhcp_enabled_6) - self->dhcp_enabled_6 = TRUE; + if (!src->allow_routes_without_address_6) + self->allow_routes_without_address_6 = FALSE; } NML3ConfigData * diff --git a/src/core/nm-l3-config-data.h b/src/core/nm-l3-config-data.h index b55b2f41..faf4f0bf 100644 --- a/src/core/nm-l3-config-data.h +++ b/src/core/nm-l3-config-data.h @@ -554,7 +554,12 @@ NMSettingIP6ConfigPrivacy nm_l3_config_data_get_ip6_privacy(const NML3ConfigData gboolean nm_l3_config_data_set_ip6_privacy(NML3ConfigData *self, NMSettingIP6ConfigPrivacy ip6_privacy); -gboolean nm_l3_config_data_get_dhcp_enabled(const NML3ConfigData *self, int addr_family); +gboolean nm_l3_config_data_get_allow_routes_without_address(const NML3ConfigData *self, + int addr_family); + +void nm_l3_config_data_set_allow_routes_without_address(NML3ConfigData *self, + int addr_family, + gboolean value); NMProxyConfigMethod nm_l3_config_data_get_proxy_method(const NML3ConfigData *self); diff --git a/src/core/nm-l3cfg.c b/src/core/nm-l3cfg.c index 12357fba..57baeac2 100644 --- a/src/core/nm-l3cfg.c +++ b/src/core/nm-l3cfg.c @@ -1301,7 +1301,6 @@ _commit_collect_routes(NML3Cfg *self, const int IS_IPv4 = NM_IS_IPv4(addr_family); const NMDedupMultiHeadEntry *head_entry; const NMDedupMultiEntry *entry; - gboolean is_dhcp_enabled; nm_assert(routes && !*routes); nm_assert(routes_nodev && !*routes_nodev); @@ -1321,10 +1320,10 @@ _commit_collect_routes(NML3Cfg *self, else { nm_assert(NMP_OBJECT_CAST_IP_ROUTE(obj)->ifindex == self->priv.ifindex); - is_dhcp_enabled = - nm_l3_config_data_get_dhcp_enabled(self->priv.p->combined_l3cd_commited, - addr_family); - if (!any_addrs && is_dhcp_enabled) { + if (!any_addrs + && !nm_l3_config_data_get_allow_routes_without_address( + self->priv.p->combined_l3cd_commited, + addr_family)) { /* This is a unicast route (or a similar route, which has an * ifindex). * diff --git a/src/core/vpn/nm-vpn-connection.c b/src/core/vpn/nm-vpn-connection.c index de0c9f71..b5a7fc4c 100644 --- a/src/core/vpn/nm-vpn-connection.c +++ b/src/core/vpn/nm-vpn-connection.c @@ -1433,6 +1433,10 @@ _check_complete(NMVpnConnection *self, gboolean success) l3cd = nm_l3_config_data_new_from_connection(nm_netns_get_multi_idx(priv->netns), nm_vpn_connection_get_ip_ifindex(self, TRUE), connection); + + nm_l3_config_data_set_allow_routes_without_address(l3cd, AF_INET, TRUE); + nm_l3_config_data_set_allow_routes_without_address(l3cd, AF_INET6, TRUE); + _l3cfg_l3cd_set(self, L3CD_TYPE_STATIC, l3cd); _l3cfg_l3cd_gw_extern_update(self); @@ -1988,6 +1992,12 @@ _dbus_signal_ip_config_cb(NMVpnConnection *self, int addr_family, GVariant *dict nm_l3_config_data_set_dns_priority(l3cd, AF_INET, NM_DNS_PRIORITY_DEFAULT_VPN); + _vardict_to_addr(addr_family, + dict, + IS_IPv4 ? NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY + : NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY, + &priv->ip_data_x[IS_IPv4].gw_internal); + if (IS_IPv4) { address.a4 = (NMPlatformIP4Address){ .plen = 24, @@ -1998,16 +2008,17 @@ _dbus_signal_ip_config_cb(NMVpnConnection *self, int addr_family, GVariant *dict }; } - _vardict_to_addr(addr_family, - dict, - IS_IPv4 ? NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY - : NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY, - &priv->ip_data_x[IS_IPv4].gw_internal); - - _vardict_to_addr(addr_family, - dict, - IS_IPv4 ? NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS : NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS, - address.ax.address_ptr); + if (_vardict_to_addr(addr_family, + dict, + IS_IPv4 ? NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS + : NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS, + address.ax.address_ptr) + && nm_ip_addr_is_null(addr_family, &address.ax.address_ptr)) { + _LOGW("invalid IP%c config received: address is zero", + nm_utils_addr_family_to_char(addr_family)); + _check_complete(self, FALSE); + return; + } if (!_vardict_to_addr(addr_family, dict, @@ -2024,17 +2035,20 @@ _dbus_signal_ip_config_cb(NMVpnConnection *self, int addr_family, GVariant *dict &u32)) address.ax.plen = u32; - if (address.ax.plen > 0 && address.ax.plen <= (IS_IPv4 ? 32 : 128) - && !nm_ip_addr_is_null(addr_family, &address.ax.address_ptr)) { - address.ax.addr_source = NM_IP_CONFIG_SOURCE_VPN; - nm_l3_config_data_add_address(l3cd, addr_family, NULL, &address.ax); - } else { - _LOGW("invalid IP%c config received: no valid IP address/prefix", - nm_utils_addr_family_to_char(addr_family)); + if (!nm_ip_addr_is_null(addr_family, &address.ax.address_ptr) + && (address.ax.plen == 0 || address.ax.plen > (IS_IPv4 ? 32 : 128))) { + _LOGW("invalid IP%c config received: invalid prefix %u", + nm_utils_addr_family_to_char(addr_family), + address.ax.plen); _check_complete(self, FALSE); return; } + if (!nm_ip_addr_is_null(addr_family, &address.ax.address_ptr)) { + address.ax.addr_source = NM_IP_CONFIG_SOURCE_VPN; + nm_l3_config_data_add_address(l3cd, addr_family, NULL, &address.ax); + } + if (IS_IPv4) { if (g_variant_lookup(dict, NM_VPN_PLUGIN_IP4_CONFIG_DNS, "au", &var_iter)) { while (g_variant_iter_next(var_iter, "u", &u32)) |