diff options
| author | Michael Biebl <biebl@debian.org> | 2023-01-26 21:18:45 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2023-01-26 21:18:45 +0100 |
| commit | 40ec077ea305994c1fc2130add6787ca0c73e2c6 (patch) | |
| tree | 7694e44c64d371a1f8e57b891ef9846143108996 | |
| parent | 5d9e3721ad196595acd064e0d3ce66edc2613e51 (diff) | |
New upstream version 1.40.12 upstream/1.40.12
42 files changed, 233 insertions, 173 deletions
diff --git a/NEWS b/NEWS index 237ef590..06c72964 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,16 @@ +================================================ +NetworkManager-1.40.12 +Overview of changes since NetworkManager-1.40.10 +================================================ + +* Make sure "external-ids" stays up to date in Open vSwitch database on a + connection reapply. +* Retry if a netlink sockets runs out of buffer space before we're able to + read results of a link change. +* Fix a possible race involving concurrent invocation of iptables in IPv4 + shared mode. +* Other various fixes. + =============================================== NetworkManager-1.40.10 Overview of changes since NetworkManager-1.40.8 diff --git a/configure b/configure index d387a2f4..c4ceed21 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for NetworkManager 1.40.10. +# Generated by GNU Autoconf 2.71 for NetworkManager 1.40.12. # # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager>. # @@ -622,8 +622,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='NetworkManager' PACKAGE_TARNAME='NetworkManager' -PACKAGE_VERSION='1.40.10' -PACKAGE_STRING='NetworkManager 1.40.10' +PACKAGE_VERSION='1.40.12' +PACKAGE_STRING='NetworkManager 1.40.12' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager' PACKAGE_URL='' @@ -1744,7 +1744,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures NetworkManager 1.40.10 to adapt to many kinds of systems. +\`configure' configures NetworkManager 1.40.12 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1816,7 +1816,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of NetworkManager 1.40.10:";; + short | recursive ) echo "Configuration of NetworkManager 1.40.12:";; esac cat <<\_ACEOF @@ -2171,7 +2171,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -NetworkManager configure 1.40.10 +NetworkManager configure 1.40.12 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2892,7 +2892,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by NetworkManager $as_me 1.40.10, which was +It was created by NetworkManager $as_me 1.40.12, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4388,7 +4388,7 @@ fi # Define the identity of the package. PACKAGE='NetworkManager' - VERSION='1.40.10' + VERSION='1.40.12' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -19328,8 +19328,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu NM_MAJOR_VERSION=1 NM_MINOR_VERSION=40 -NM_MICRO_VERSION=10 -NM_VERSION=1.40.10 +NM_MICRO_VERSION=12 +NM_VERSION=1.40.12 @@ -19337,7 +19337,7 @@ NM_VERSION=1.40.10 -NM_GIT_SHA=5a82c141562dc3a23c73514f7981d76c8b55ea19 +NM_GIT_SHA=4a41ba460e45ca872af97fb2bb23c71a563399a9 if test """" != "no-config-h" ; then @@ -32786,7 +32786,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by NetworkManager $as_me 1.40.10, which was +This file was extended by NetworkManager $as_me 1.40.12, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -32854,7 +32854,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -NetworkManager config.status 1.40.10 +NetworkManager config.status 1.40.12 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index d5353e6e..2a369f24 100644 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ dnl "shared/nm-version-macros.h.in" dnl - update number in meson.build m4_define([nm_major_version], [1]) m4_define([nm_minor_version], [40]) -m4_define([nm_micro_version], [10]) +m4_define([nm_micro_version], [12]) m4_define([nm_version], [nm_major_version.nm_minor_version.nm_micro_version]) diff --git a/docs/api/html/index.html b/docs/api/html/index.html index 240e61e6..d4b84edd 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.40.10 + for NetworkManager 1.40.12 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/api/version.xml b/docs/api/version.xml index 5faa4fff..e07338c1 100644 --- a/docs/api/version.xml +++ b/docs/api/version.xml @@ -1 +1 @@ -1.40.10 +1.40.12 diff --git a/docs/libnm/html/NMVpnEditor.html b/docs/libnm/html/NMVpnEditor.html index ce6d9daf..d49edda0 100644 --- a/docs/libnm/html/NMVpnEditor.html +++ b/docs/libnm/html/NMVpnEditor.html @@ -138,7 +138,7 @@ nm_vpn_editor_update_connection (<em class="parameter"><code><a class="link" hre <tbody> <tr> <td class="struct_member_name"><p><em class="structfield"><code><a name="NMVpnEditorInterface.get-widget"></a>get_widget</code></em> ()</p></td> -<td class="struct_member_description"><p>return the <span class="type">GtkWidget</span> for the VPN editor's UI</p></td> +<td class="struct_member_description"><p>return the <a href="https://developer.gnome.org/gtk3/GtkWidget.html#GtkWidget-struct"><span class="type">GtkWidget</span></a> for the VPN editor's UI</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> diff --git a/docs/libnm/html/index.html b/docs/libnm/html/index.html index 6ed937a6..ba92aea7 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.40.10 + for libnm 1.40.12 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/usage.html b/docs/libnm/html/usage.html index e5334abc..d4b672ec 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.40.10 + NetworkManager version: 1.40.12 <code class="prompt">$ </code></pre> <p> diff --git a/docs/libnm/version.xml b/docs/libnm/version.xml index 5faa4fff..e07338c1 100644 --- a/docs/libnm/version.xml +++ b/docs/libnm/version.xml @@ -1 +1 @@ -1.40.10 +1.40.12 diff --git a/man/NetworkManager-dispatcher.8 b/man/NetworkManager-dispatcher.8 index 8c6b44b4..529bfff8 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: Network management daemons -.\" Source: NetworkManager-dispatcher 1.40.10 +.\" Source: NetworkManager-dispatcher 1.40.12 .\" 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 7d5691b8..e5a086bb 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: Network management daemons -.\" Source: NetworkManager-wait-online.service 1.40.10 +.\" Source: NetworkManager-wait-online.service 1.40.12 .\" Language: English .\" .TH "NETWORKMANAGER\-WAIT\-ONLINE\&" "8" "" "NetworkManager\-wait\-online\&" "Network management daemons" diff --git a/man/NetworkManager.8 b/man/NetworkManager.8 index 558500f6..31979130 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: Network management daemons -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.40\&.10" "Network management daemons" +.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.40\&.12" "Network management daemons" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/NetworkManager.conf.5 b/man/NetworkManager.conf.5 index 926d5ce6..b2c84edf 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: Configuration -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.40\&.10" "Configuration" +.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.40\&.12" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-cloud-setup.8 b/man/nm-cloud-setup.8 index 2bab0ed6..190943c0 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: Automatic Network Configuration in Cloud with NetworkManager -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NM\-CLOUD\-SETUP" "8" "" "NetworkManager 1\&.40\&.10" "Automatic Network Configuratio" +.TH "NM\-CLOUD\-SETUP" "8" "" "NetworkManager 1\&.40\&.12" "Automatic Network Configuratio" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-initrd-generator.8 b/man/nm-initrd-generator.8 index 902affd9..53500737 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: System Administration -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.40\&.10" "System Administration" +.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.40\&.12" "System Administration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-online.1 b/man/nm-online.1 index ea6b855d..4eaa0a3f 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.40\&.10" "General Commands Manual" +.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.40\&.12" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-openvswitch.7 b/man/nm-openvswitch.7 index ced68ccd..01d98678 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: Open vSwitch support overview -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.40\&.10" "Open vSwitch support overview" +.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.40\&.12" "Open vSwitch support overview" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-dbus.5 b/man/nm-settings-dbus.5 index 5cff29d2..ebbf2ac6 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: Configuration -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NM\-SETTINGS\-DBUS" "5" "" "NetworkManager 1\&.40\&.10" "Configuration" +.TH "NM\-SETTINGS\-DBUS" "5" "" "NetworkManager 1\&.40\&.12" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-dbus.xml b/man/nm-settings-dbus.xml index 6111a8f1..57cc34e9 100644 --- a/man/nm-settings-dbus.xml +++ b/man/nm-settings-dbus.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> -<refentry id="nm-settings-dbus"><refentryinfo><title>nm-settings-dbus</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-dbus</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.40.10</refmiscinfo></refmeta><refnamediv><refname>nm-settings-dbus</refname><refpurpose>Description of settings and properties of NetworkManager connection profiles on the D-Bus API</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para> +<refentry id="nm-settings-dbus"><refentryinfo><title>nm-settings-dbus</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-dbus</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.40.12</refmiscinfo></refmeta><refnamediv><refname>nm-settings-dbus</refname><refpurpose>Description of settings and properties of NetworkManager connection profiles on the D-Bus API</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para> NetworkManager is based on a concept of connection profiles, sometimes referred to as connections only. These connection profiles contain a network configuration. When NetworkManager activates a connection profile on a network device the configuration will diff --git a/man/nm-settings-ifcfg-rh.5 b/man/nm-settings-ifcfg-rh.5 index 55af04f4..c1812b2c 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: Configuration -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.40\&.10" "Configuration" +.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.40\&.12" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-ifcfg-rh.xml b/man/nm-settings-ifcfg-rh.xml index 3e74ef76..cb030194 100644 --- a/man/nm-settings-ifcfg-rh.xml +++ b/man/nm-settings-ifcfg-rh.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> -<refentry id="nm-settings-ifcfg-rh"><refentryinfo><title>nm-settings-ifcfg-rh</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-ifcfg-rh</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.40.10</refmiscinfo></refmeta><refnamediv><refname>nm-settings-ifcfg-rh</refname><refpurpose>Description of <emphasis>ifcfg-rh</emphasis> settings plugin</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para> +<refentry id="nm-settings-ifcfg-rh"><refentryinfo><title>nm-settings-ifcfg-rh</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-ifcfg-rh</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.40.12</refmiscinfo></refmeta><refnamediv><refname>nm-settings-ifcfg-rh</refname><refpurpose>Description of <emphasis>ifcfg-rh</emphasis> settings plugin</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para> NetworkManager is based on the concept of connection profiles that contain network configuration (see <citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details). The profiles can be stored in various formats. NetworkManager uses plugins for reading and writing diff --git a/man/nm-settings-keyfile.5 b/man/nm-settings-keyfile.5 index 7e7efd21..d7a1b082 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: Configuration -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.40\&.10" "Configuration" +.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.40\&.12" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-keyfile.xml b/man/nm-settings-keyfile.xml index 8b85a440..0523a8bc 100644 --- a/man/nm-settings-keyfile.xml +++ b/man/nm-settings-keyfile.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> -<refentry id="nm-settings-keyfile"><refentryinfo><title>nm-settings-keyfile</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-keyfile</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.40.10</refmiscinfo></refmeta><refnamediv><refname>nm-settings-keyfile</refname><refpurpose>Description of <emphasis>keyfile</emphasis> settings plugin</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para> +<refentry id="nm-settings-keyfile"><refentryinfo><title>nm-settings-keyfile</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-keyfile</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.40.12</refmiscinfo></refmeta><refnamediv><refname>nm-settings-keyfile</refname><refpurpose>Description of <emphasis>keyfile</emphasis> settings plugin</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para> NetworkManager is based on the concept of connection profiles that contain network configuration (see <citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details). The profiles can be stored in various formats. NetworkManager uses plugins for reading and writing diff --git a/man/nm-settings-nmcli.5 b/man/nm-settings-nmcli.5 index fc794c68..6fb8f1d1 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: Configuration -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NM\-SETTINGS\-NMCLI" "5" "" "NetworkManager 1\&.40\&.10" "Configuration" +.TH "NM\-SETTINGS\-NMCLI" "5" "" "NetworkManager 1\&.40\&.12" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-nmcli.xml b/man/nm-settings-nmcli.xml index a5ebbdd5..794ee278 100644 --- a/man/nm-settings-nmcli.xml +++ b/man/nm-settings-nmcli.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> -<refentry id="nm-settings-nmcli"><refentryinfo><title>nm-settings-nmcli</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-nmcli</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.40.10</refmiscinfo></refmeta><refnamediv><refname>nm-settings-nmcli</refname><refpurpose>Description of settings and properties of NetworkManager connection profiles for nmcli</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para> +<refentry id="nm-settings-nmcli"><refentryinfo><title>nm-settings-nmcli</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-nmcli</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.40.12</refmiscinfo></refmeta><refnamediv><refname>nm-settings-nmcli</refname><refpurpose>Description of settings and properties of NetworkManager connection profiles for nmcli</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para> NetworkManager is based on a concept of connection profiles, sometimes referred to as connections only. These connection profiles contain a network configuration. When NetworkManager activates a connection profile on a network device the configuration will diff --git a/man/nmcli-examples.7 b/man/nmcli-examples.7 index 12d16a6b..eb114348 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: Examples -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.40\&.10" "Examples" +.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.40\&.12" "Examples" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmcli.1 b/man/nmcli.1 index f547f431..c9f40627 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NMCLI" "1" "" "NetworkManager 1\&.40\&.10" "General Commands Manual" +.TH "NMCLI" "1" "" "NetworkManager 1\&.40\&.12" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmtui.1 b/man/nmtui.1 index ad188170..972fb184 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: 01/11/2023 +.\" Date: 01/26/2023 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.40.10 +.\" Source: NetworkManager 1.40.12 .\" Language: English .\" -.TH "NMTUI" "1" "" "NetworkManager 1\&.40\&.10" "General Commands Manual" +.TH "NMTUI" "1" "" "NetworkManager 1\&.40\&.12" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/meson.build b/meson.build index f30573f1..db809693 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.40.10', + version: '1.40.12', license: 'GPL2+', default_options: [ 'buildtype=debugoptimized', diff --git a/po/NetworkManager.pot b/po/NetworkManager.pot index 17e471f4..abf5b064 100644 --- a/po/NetworkManager.pot +++ b/po/NetworkManager.pot @@ -6,10 +6,10 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: NetworkManager 1.40.10\n" +"Project-Id-Version: NetworkManager 1.40.12\n" "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/NetworkManager/" "NetworkManager/issues\n" -"POT-Creation-Date: 2023-01-11 12:01+0100\n" +"POT-Creation-Date: 2023-01-26 09:34+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c index a723bf7f..c4f0f9a2 100644 --- a/src/core/devices/nm-device.c +++ b/src/core/devices/nm-device.c @@ -15043,7 +15043,7 @@ nm_device_recheck_available_connections(NMDevice *self) if (nm_device_check_connection_available(self, nm_settings_connection_get_connection(sett_conn), - NM_DEVICE_CHECK_CON_AVAILABLE_NONE, + _NM_DEVICE_CHECK_CON_AVAILABLE_FOR_USER_REQUEST, NULL, NULL)) { if (available_connections_add(self, sett_conn)) diff --git a/src/core/devices/ovs/nm-ovsdb.c b/src/core/devices/ovs/nm-ovsdb.c index d3e858a1..0d688396 100644 --- a/src/core/devices/ovs/nm-ovsdb.c +++ b/src/core/devices/ovs/nm-ovsdb.c @@ -592,21 +592,30 @@ _set_bridge_ports(json_t *params, const char *ifname, json_t *new_ports) static void _set_bridge_mac(json_t *params, const char *ifname, const char *mac) { - json_array_append_new(params, - json_pack("{s:s, s:s, s:{s:[s, [[s, s]]]}, s:[[s, s, s]]}", - "op", - "update", - "table", - "Bridge", - "row", - "other_config", - "map", - "hwaddr", - mac, - "where", - "name", - "==", - ifname)); + json_array_append_new( + params, + json_pack("{s:s, s:s, s:[[s, s, [s, [s]]], [s, s, [s, [[s, s]]]]], s:[[s, s, s]]}", + "op", + "mutate", + "table", + "Bridge", + "mutations", + + "other_config", + "delete", + "set", + "hwaddr", + + "other_config", + "insert", + "map", + "hwaddr", + mac, + + "where", + "name", + "==", + ifname)); } /** @@ -714,26 +723,27 @@ _j_create_external_ids_array_update(const char *connection_uuid, mutations = json_array(); + array = json_array(); if (exid_old) { - array = NULL; g_hash_table_iter_init(&iter, exid_old); while (g_hash_table_iter_next(&iter, (gpointer *) &key, NULL)) { - if (nm_g_hash_table_contains(exid_new, key)) - continue; - if (NM_STR_HAS_PREFIX(key, NM_OVS_EXTERNAL_ID_NM_PREFIX)) - continue; - - if (!array) - array = json_array(); - json_array_append_new(array, json_string(key)); } - if (array) { - json_array_append_new( - mutations, - json_pack("[s, s, [s, o]]", "external_ids", "delete", "set", array)); + } + if (exid_new) { + g_hash_table_iter_init(&iter, exid_new); + while (g_hash_table_iter_next(&iter, (gpointer *) &key, NULL)) { + if (nm_g_hash_table_contains(exid_old, key)) + continue; + json_array_append_new(array, json_string(key)); } } + if (!nm_g_hash_table_contains(exid_old, NM_OVS_EXTERNAL_ID_NM_PREFIX) + && !nm_g_hash_table_contains(exid_new, NM_OVS_EXTERNAL_ID_NM_PREFIX)) { + json_array_append_new(array, json_string(NM_OVS_EXTERNAL_ID_NM_PREFIX)); + } + json_array_append_new(mutations, + json_pack("[s, s, [s, o]]", "external_ids", "delete", "set", array)); array = json_array(); @@ -1569,9 +1579,9 @@ _external_ids_to_string(const GArray *arr) if (i > 0) nm_str_buf_append_c(&strbuf, ','); - nm_str_buf_append_printf(&strbuf, " \"%s\" = \"%s\"]", n->name, n->value_str); + nm_str_buf_append_printf(&strbuf, " \"%s\" = \"%s\" ", n->name, n->value_str); } - nm_str_buf_append(&strbuf, " ]"); + nm_str_buf_append(&strbuf, "]"); return nm_str_buf_finalize(&strbuf, NULL); } diff --git a/src/core/nm-config.c b/src/core/nm-config.c index 3d23d4f6..62e4e7ea 100644 --- a/src/core/nm-config.c +++ b/src/core/nm-config.c @@ -1509,8 +1509,8 @@ nm_config_keyfile_has_global_dns_config(GKeyFile *keyfile, gboolean internal) if (!keyfile) return FALSE; if (g_key_file_has_group(keyfile, - internal ? NM_CONFIG_KEYFILE_GROUP_GLOBAL_DNS - : NM_CONFIG_KEYFILE_GROUP_INTERN_GLOBAL_DNS)) + internal ? NM_CONFIG_KEYFILE_GROUP_INTERN_GLOBAL_DNS + : NM_CONFIG_KEYFILE_GROUP_GLOBAL_DNS)) return TRUE; groups = g_key_file_get_groups(keyfile, NULL); diff --git a/src/core/nm-connectivity.c b/src/core/nm-connectivity.c index cd30853d..c0e77e35 100644 --- a/src/core/nm-connectivity.c +++ b/src/core/nm-connectivity.c @@ -767,7 +767,13 @@ do_curl_request(NMConnectivityCheckHandle *cb_data, const char *hosts) curl_easy_setopt(ehandle, CURLOPT_INTERFACE, cb_data->ifspec); curl_easy_setopt(ehandle, CURLOPT_RESOLVE, cb_data->concheck.hosts); curl_easy_setopt(ehandle, CURLOPT_IPRESOLVE, resolve); + +#if LIBCURL_VERSION_NUM >= 0x075500 /* libcurl 7.85.0 */ + curl_easy_setopt(ehandle, CURLOPT_PROTOCOLS_STR, "HTTP,HTTPS"); +#else curl_easy_setopt(ehandle, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); +#endif + if (_LOGT_ENABLED() && easy_debug_enabled()) { curl_easy_setopt(ehandle, CURLOPT_DEBUGFUNCTION, easy_debug_cb); curl_easy_setopt(ehandle, CURLOPT_DEBUGDATA, cb_data); diff --git a/src/core/nm-core-utils.h b/src/core/nm-core-utils.h index d1a62a60..483af077 100644 --- a/src/core/nm-core-utils.h +++ b/src/core/nm-core-utils.h @@ -154,7 +154,7 @@ nm_utils_ip_route_metric_penalize(guint32 metric, guint32 penalty) void nm_utils_kill_process_sync(pid_t pid, guint64 start_time, int sig, - guint64 log_domain, + NMLogDomain log_domain, const char *log_name, guint32 wait_before_kill_msec, guint32 sleep_duration_msec, @@ -166,14 +166,14 @@ typedef void (*NMUtilsKillChildAsyncCb)(pid_t pid, void *user_data); void nm_utils_kill_child_async(pid_t pid, int sig, - guint64 log_domain, + NMLogDomain log_domain, const char *log_name, guint32 wait_before_kill_msec, NMUtilsKillChildAsyncCb callback, void *user_data); gboolean nm_utils_kill_child_sync(pid_t pid, int sig, - guint64 log_domain, + NMLogDomain log_domain, const char *log_name, int *child_status, guint32 wait_before_kill_msec, diff --git a/src/core/nm-firewall-utils.c b/src/core/nm-firewall-utils.c index e482ab96..4bcde85f 100644 --- a/src/core/nm-firewall-utils.c +++ b/src/core/nm-firewall-utils.c @@ -147,12 +147,13 @@ _share_iptables_call_v(const char *const *argv) return TRUE; } -#define _share_iptables_call(...) _share_iptables_call_v(NM_MAKE_STRV(__VA_ARGS__)) +#define _share_iptables_call(...) \ + _share_iptables_call_v(NM_MAKE_STRV("" IPTABLES_PATH "", "--wait", "2", __VA_ARGS__)) static gboolean _share_iptables_chain_op(const char *table, const char *chain, const char *op) { - return _share_iptables_call("" IPTABLES_PATH "", "--table", table, op, chain); + return _share_iptables_call("--table", table, op, chain); } static gboolean @@ -181,8 +182,7 @@ _share_iptables_set_masquerade_sync(gboolean up, const char *ip_iface, in_addr_t comment_name = _share_iptables_get_name(FALSE, "nm-shared", ip_iface); _share_iptables_subnet_to_str(str_subnet, addr, plen); - _share_iptables_call("" IPTABLES_PATH "", - "--table", + _share_iptables_call("--table", "nat", up ? "--insert" : "--delete", "POSTROUTING", @@ -232,8 +232,7 @@ _share_iptables_set_shared_chains_add(const char *chain_input, _share_iptables_chain_add("filter", chain_input); for (i = 0; i < (int) G_N_ELEMENTS(input_params); i++) { - _share_iptables_call("" IPTABLES_PATH "", - "--table", + _share_iptables_call("--table", "filter", "--append", chain_input, @@ -247,8 +246,7 @@ _share_iptables_set_shared_chains_add(const char *chain_input, _share_iptables_chain_add("filter", chain_forward); - _share_iptables_call("" IPTABLES_PATH "", - "--table", + _share_iptables_call("--table", "filter", "--append", chain_forward, @@ -262,8 +260,7 @@ _share_iptables_set_shared_chains_add(const char *chain_input, "ESTABLISHED,RELATED", "--jump", "ACCEPT"); - _share_iptables_call("" IPTABLES_PATH "", - "--table", + _share_iptables_call("--table", "filter", "--append", chain_forward, @@ -273,8 +270,7 @@ _share_iptables_set_shared_chains_add(const char *chain_input, ip_iface, "--jump", "ACCEPT"); - _share_iptables_call("" IPTABLES_PATH "", - "--table", + _share_iptables_call("--table", "filter", "--append", chain_forward, @@ -284,8 +280,7 @@ _share_iptables_set_shared_chains_add(const char *chain_input, ip_iface, "--jump", "ACCEPT"); - _share_iptables_call("" IPTABLES_PATH "", - "--table", + _share_iptables_call("--table", "filter", "--append", chain_forward, @@ -293,8 +288,7 @@ _share_iptables_set_shared_chains_add(const char *chain_input, ip_iface, "--jump", "REJECT"); - _share_iptables_call("" IPTABLES_PATH "", - "--table", + _share_iptables_call("--table", "filter", "--append", chain_forward, @@ -325,8 +319,7 @@ _share_iptables_set_shared_sync(gboolean up, const char *ip_iface, in_addr_t add if (up) _share_iptables_set_shared_chains_add(chain_input, chain_forward, ip_iface, addr, plen); - _share_iptables_call("" IPTABLES_PATH "", - "--table", + _share_iptables_call("--table", "filter", up ? "--insert" : "--delete", "INPUT", @@ -339,8 +332,7 @@ _share_iptables_set_shared_sync(gboolean up, const char *ip_iface, in_addr_t add "--comment", comment_name); - _share_iptables_call("" IPTABLES_PATH "", - "--table", + _share_iptables_call("--table", "filter", up ? "--insert" : "--delete", "FORWARD", diff --git a/src/core/platform/tests/test-common.c b/src/core/platform/tests/test-common.c index 34ec5cc2..b5bb1232 100644 --- a/src/core/platform/tests/test-common.c +++ b/src/core/platform/tests/test-common.c @@ -12,6 +12,7 @@ #include <sys/wait.h> #include <fcntl.h> #include <linux/if_tun.h> +#include <linux/rtnetlink.h> #include "n-acd/src/n-acd.h" @@ -540,7 +541,7 @@ _ip4_route_get(NMPlatform *platform, _init_platform(&platform, FALSE); - nmp_lookup_init_ip4_route_by_weak_id(&lookup, network, plen, metric, tos); + nmp_lookup_init_ip4_route_by_weak_id(&lookup, RT_TABLE_MAIN, network, plen, metric, tos); c = 0; nmp_cache_iter_for_each (&iter, nm_platform_lookup(platform, &lookup), &o) { @@ -633,7 +634,13 @@ _ip6_route_get(NMPlatform *platform, _init_platform(&platform, FALSE); - nmp_lookup_init_ip6_route_by_weak_id(&lookup, network, plen, metric, src, src_plen); + nmp_lookup_init_ip6_route_by_weak_id(&lookup, + RT_TABLE_MAIN, + network, + plen, + metric, + src, + src_plen); c = 0; nmp_cache_iter_for_each (&iter, nm_platform_lookup(platform, &lookup), &o) { diff --git a/src/libnm-core-public/nm-version-macros.h b/src/libnm-core-public/nm-version-macros.h index f95ca8ae..f3d50252 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 (10) +#define NM_MICRO_VERSION (12) /** * NM_CHECK_VERSION: diff --git a/src/libnm-platform/nm-linux-platform.c b/src/libnm-platform/nm-linux-platform.c index eb7c671b..b798d12d 100644 --- a/src/libnm-platform/nm-linux-platform.c +++ b/src/libnm-platform/nm-linux-platform.c @@ -711,6 +711,9 @@ wait_for_nl_response_to_string(WaitForNlResponseResult seq_result, case WAIT_FOR_NL_RESPONSE_RESULT_RESPONSE_UNKNOWN: nm_strbuf_append_str(&buf, &buf_size, "failure"); break; + case WAIT_FOR_NL_RESPONSE_RESULT_FAILED_RESYNC: + nm_strbuf_append_str(&buf, &buf_size, "failed-resync"); + break; default: if (seq_result < 0) { nm_strbuf_append(&buf, @@ -7893,20 +7896,25 @@ do_change_link(NMPlatform *platform, WaitForNlResponseResult seq_result = WAIT_FOR_NL_RESPONSE_RESULT_UNKNOWN; gs_free char *errmsg = NULL; char s_buf[256]; - int result = 0; - NMLogLevel log_level = LOGL_DEBUG; - const char *log_result = "failure"; - const char *log_detail = ""; + int result; + NMLogLevel log_level; + const char *log_detail; gs_free char *log_detail_free = NULL; const NMPObject *obj_cache; if (!nm_platform_netns_push(platform, &netns)) { log_level = LOGL_ERR; log_detail = ", failure to change network namespace"; + result = -NME_UNSPEC; goto out; } retry: + result = -NME_UNSPEC; + log_level = LOGL_WARN; + log_detail = ""; + nm_clear_g_free(&log_detail_free); + nle = _netlink_send_nlmsg_rtnl(platform, nlmsg, &seq_result, &errmsg); if (nle < 0) { log_level = LOGL_ERR; @@ -7924,53 +7932,54 @@ retry: nm_assert(seq_result); - if (NM_IN_SET(-((int) seq_result), EOPNOTSUPP) && nlmsg_hdr(nlmsg)->nlmsg_type == RTM_NEWLINK) { + if (NM_IN_SET(seq_result, WAIT_FOR_NL_RESPONSE_RESULT_RESPONSE_OK, -EEXIST, -EADDRINUSE)) { + log_level = LOGL_DEBUG; + result = 0; + } else if (NM_IN_SET(seq_result, -EOPNOTSUPP) && nlmsg_hdr(nlmsg)->nlmsg_type == RTM_NEWLINK) { nlmsg_hdr(nlmsg)->nlmsg_type = RTM_SETLINK; - goto retry; - } - if (seq_result == WAIT_FOR_NL_RESPONSE_RESULT_RESPONSE_OK) { - log_result = "success"; - } else if (NM_IN_SET(-((int) seq_result), EEXIST, EADDRINUSE)) { - /* */ - } else if (NM_IN_SET(-((int) seq_result), ESRCH, ENOENT)) { + log_level = LOGL_INFO; + log_detail = ", will try SETLINK instead of NEWLINK"; + result = -EAGAIN; + } else if (seq_result == WAIT_FOR_NL_RESPONSE_RESULT_FAILED_RESYNC) { + log_level = LOGL_INFO; + log_detail = ", due to lost synchronization"; + result = -EAGAIN; + } else if (NM_IN_SET(seq_result, -ESRCH, -ENOENT)) { log_detail = ", firmware not found"; result = -NME_PL_NO_FIRMWARE; - } else if (NM_IN_SET(-((int) seq_result), ERANGE) - && change_link_type == CHANGE_LINK_TYPE_SET_MTU) { + } else if (NM_IN_SET(seq_result, -ERANGE) && change_link_type == CHANGE_LINK_TYPE_SET_MTU) { log_detail = ", setting MTU to requested size is not possible"; result = -NME_PL_CANT_SET_MTU; - } else if (NM_IN_SET(-((int) seq_result), ENFILE) - && change_link_type == CHANGE_LINK_TYPE_SET_ADDRESS + } else if (NM_IN_SET(seq_result, -ENFILE) && change_link_type == CHANGE_LINK_TYPE_SET_ADDRESS && (obj_cache = nmp_cache_lookup_link(nm_platform_get_cache(platform), ifindex)) && obj_cache->link.l_address.len == data->set_address.length && memcmp(obj_cache->link.l_address.data, data->set_address.address, data->set_address.length) == 0) { - /* workaround ENFILE which may be wrongly returned (bgo #770456). + /* work around ENFILE which may be wrongly returned (bgo #770456). * If the MAC address is as expected, assume success? */ - log_result = "success"; log_detail = " (assume success changing address)"; result = 0; - } else if (NM_IN_SET(-((int) seq_result), ENODEV)) { + } else if (NM_IN_SET(seq_result, -ENODEV)) { log_level = LOGL_DEBUG; result = -NME_PL_NOT_FOUND; - } else if (-((int) seq_result) == EAFNOSUPPORT) { + } else if (seq_result == -EAFNOSUPPORT) { log_level = LOGL_DEBUG; result = -NME_PL_OPNOTSUPP; - } else { - log_level = LOGL_WARN; - result = -NME_UNSPEC; } out: _NMLOG(log_level, - "do-change-link[%d]: %s changing link: %s%s", + "do-change-link[%d]: %s%s", ifindex, - log_result, wait_for_nl_response_to_string(seq_result, errmsg, s_buf, sizeof(s_buf)), log_detail); + + if (result == -EAGAIN) + goto retry; + return result; } diff --git a/src/libnm-platform/nmp-object.c b/src/libnm-platform/nmp-object.c index 6609a7d5..db7bd314 100644 --- a/src/libnm-platform/nmp-object.c +++ b/src/libnm-platform/nmp-object.c @@ -2204,19 +2204,23 @@ nmp_lookup_init_route_by_weak_id(NMPLookup *lookup, const NMPObject *obj) switch (NMP_OBJECT_GET_TYPE(obj)) { case NMP_OBJECT_TYPE_IP4_ROUTE: r4 = NMP_OBJECT_CAST_IP4_ROUTE(obj); - return nmp_lookup_init_ip4_route_by_weak_id(lookup, - r4->network, - r4->plen, - r4->metric, - r4->tos); + return nmp_lookup_init_ip4_route_by_weak_id( + lookup, + nm_platform_route_table_uncoerce(r4->table_coerced, TRUE), + r4->network, + r4->plen, + r4->metric, + r4->tos); case NMP_OBJECT_TYPE_IP6_ROUTE: r6 = NMP_OBJECT_CAST_IP6_ROUTE(obj); - return nmp_lookup_init_ip6_route_by_weak_id(lookup, - &r6->network, - r6->plen, - r6->metric, - &r6->src, - r6->src_plen); + return nmp_lookup_init_ip6_route_by_weak_id( + lookup, + nm_platform_route_table_uncoerce(r6->table_coerced, TRUE), + &r6->network, + r6->plen, + r6->metric, + &r6->src, + r6->src_plen); default: nm_assert_not_reached(); return NULL; @@ -2225,6 +2229,7 @@ nmp_lookup_init_route_by_weak_id(NMPLookup *lookup, const NMPObject *obj) const NMPLookup * nmp_lookup_init_ip4_route_by_weak_id(NMPLookup *lookup, + guint32 route_table, in_addr_t network, guint plen, guint32 metric, @@ -2235,9 +2240,10 @@ nmp_lookup_init_ip4_route_by_weak_id(NMPLookup *lookup, nm_assert(lookup); o = _nmp_object_stackinit_from_type(&lookup->selector_obj, NMP_OBJECT_TYPE_IP4_ROUTE); - o->ip4_route.ifindex = 1; - o->ip4_route.plen = plen; - o->ip4_route.metric = metric; + o->ip4_route.ifindex = 1; + o->ip4_route.plen = plen; + o->ip4_route.table_coerced = nm_platform_route_table_coerce(route_table); + o->ip4_route.metric = metric; if (network) o->ip4_route.network = network; o->ip4_route.tos = tos; @@ -2247,6 +2253,7 @@ nmp_lookup_init_ip4_route_by_weak_id(NMPLookup *lookup, const NMPLookup * nmp_lookup_init_ip6_route_by_weak_id(NMPLookup *lookup, + guint32 route_table, const struct in6_addr *network, guint plen, guint32 metric, @@ -2258,9 +2265,10 @@ nmp_lookup_init_ip6_route_by_weak_id(NMPLookup *lookup, nm_assert(lookup); o = _nmp_object_stackinit_from_type(&lookup->selector_obj, NMP_OBJECT_TYPE_IP6_ROUTE); - o->ip6_route.ifindex = 1; - o->ip6_route.plen = plen; - o->ip6_route.metric = metric; + o->ip6_route.ifindex = 1; + o->ip6_route.plen = plen; + o->ip6_route.table_coerced = nm_platform_route_table_coerce(route_table); + o->ip6_route.metric = metric; if (network) o->ip6_route.network = *network; if (src) diff --git a/src/libnm-platform/nmp-object.h b/src/libnm-platform/nmp-object.h index 4958404a..25156fe2 100644 --- a/src/libnm-platform/nmp-object.h +++ b/src/libnm-platform/nmp-object.h @@ -811,11 +811,13 @@ nmp_lookup_init_object_by_ifindex(NMPLookup *lookup, NMPObjectType obj_type, int const NMPLookup *nmp_lookup_init_route_default(NMPLookup *lookup, NMPObjectType obj_type); const NMPLookup *nmp_lookup_init_route_by_weak_id(NMPLookup *lookup, const NMPObject *obj); const NMPLookup *nmp_lookup_init_ip4_route_by_weak_id(NMPLookup *lookup, + guint32 route_table, in_addr_t network, guint plen, guint32 metric, guint8 tos); const NMPLookup *nmp_lookup_init_ip6_route_by_weak_id(NMPLookup *lookup, + guint32 route_table, const struct in6_addr *network, guint plen, guint32 metric, @@ -1074,6 +1076,7 @@ nm_platform_lookup_route_default_clone(NMPlatform *platform, static inline const NMDedupMultiHeadEntry * nm_platform_lookup_ip4_route_by_weak_id(NMPlatform *platform, + guint32 route_table, in_addr_t network, guint plen, guint32 metric, @@ -1081,12 +1084,13 @@ nm_platform_lookup_ip4_route_by_weak_id(NMPlatform *platform, { NMPLookup lookup; - nmp_lookup_init_ip4_route_by_weak_id(&lookup, network, plen, metric, tos); + nmp_lookup_init_ip4_route_by_weak_id(&lookup, route_table, network, plen, metric, tos); return nm_platform_lookup(platform, &lookup); } static inline const NMDedupMultiHeadEntry * nm_platform_lookup_ip6_route_by_weak_id(NMPlatform *platform, + guint32 route_table, const struct in6_addr *network, guint plen, guint32 metric, @@ -1095,7 +1099,13 @@ nm_platform_lookup_ip6_route_by_weak_id(NMPlatform *platform, { NMPLookup lookup; - nmp_lookup_init_ip6_route_by_weak_id(&lookup, network, plen, metric, src, src_plen); + nmp_lookup_init_ip6_route_by_weak_id(&lookup, + route_table, + network, + plen, + metric, + src, + src_plen); return nm_platform_lookup(platform, &lookup); } diff --git a/src/nm-cloud-setup/nm-http-client.c b/src/nm-cloud-setup/nm-http-client.c index a0053d47..a0964e21 100644 --- a/src/nm-cloud-setup/nm-http-client.c +++ b/src/nm-cloud-setup/nm-http-client.c @@ -305,7 +305,12 @@ nm_http_client_get(NMHttpClient *self, curl_easy_setopt(edata->ehandle, CURLOPT_WRITEFUNCTION, _get_writefunction_cb); curl_easy_setopt(edata->ehandle, CURLOPT_WRITEDATA, edata); curl_easy_setopt(edata->ehandle, CURLOPT_PRIVATE, edata); + +#if LIBCURL_VERSION_NUM >= 0x075500 /* libcurl 7.85.0 */ + curl_easy_setopt(edata->ehandle, CURLOPT_PROTOCOLS_STR, "HTTP,HTTPS"); +#else curl_easy_setopt(edata->ehandle, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); +#endif if (http_headers) { for (i = 0; http_headers[i]; ++i) { |