Commit Graph

27030 Commits

Author SHA1 Message Date
Thomas Haller
265a5879ae shared: add nm_g_timeout_source_new_seconds() 2020-09-03 11:39:39 +02:00
Thomas Haller
fc66ad70d5 shared: add nm_g_hash_table_contains() helper 2020-09-03 11:39:39 +02:00
Thomas Haller
bff23d15d4 initrd/tests: fix memleak in test_dhcp_vendor_class_id()
Having leaks in the tests, breaks running the test under valgrind. There
must be no leaks.

Fixes: c056cb9306 ('initrd: parse 'rd.net.dhcp.vendor-class' kernel cmdline arg')
2020-09-03 11:36:39 +02:00
Thomas Haller
07955c020f release: bump version to 1.27.2 (development) 2020-09-02 20:03:10 +02:00
Antonio Cardace
eebed47257 contrib: add git-hook to verify code-style
Signed-off-by: Antonio Cardace <acardace@redhat.com>
2020-09-02 19:20:40 +02:00
Antonio Cardace
5119d00374 scripts: better error message for nm-code-format.sh
Signed-off-by: Antonio Cardace <acardace@redhat.com>
2020-09-02 19:20:36 +02:00
Thomas Haller
eda1ef4242 all: merge branch 'th/unify-nm-auto-macros' 2020-09-02 17:46:45 +02:00
Thomas Haller
15be2bb3fd shared: redefine "gs_*" cleanup macros to their "nm_auto*" counterparts 2020-09-02 17:46:44 +02:00
Thomas Haller
c7a724fd53 all: replace cleanup macro "gs_free_slist" by "nm_auto_free_slist" 2020-09-02 17:46:43 +02:00
Thomas Haller
426a4c9d50 all: replace cleanup macro "gs_unref_keyfile" by "nm_auto_unref_keyfile" 2020-09-02 17:46:43 +02:00
Thomas Haller
63f304ad58 shared: add "nm_auto*" macros as future replacements for "gs_*" cleanup macros
We still use the "gs_*" macros that we originally got from libgsystem.
libgsystem no longer exists, we only still use the names of these
macros.

Our own cleanup macros all follow the "nm_auto*" naming pattern.
Eventually, we want to replace all uses of "gs_*" with cleanup macros
that follow our naming scheme.

Add the macros that will be used to replace the "gs_*" macros.
2020-09-02 17:46:43 +02:00
Antonio Cardace
715392a45e scripts: add script to format codebase using clang-format
Signed-off-by: Antonio Cardace <acardace@redhat.com>
2020-09-02 17:31:42 +02:00
Thomas Haller
9c732c12bd man: expand DEBUGGING section in man NetworkManager 2020-09-02 16:45:14 +02:00
Thomas Haller
ab8b148d41 man: update bug tracker in man NetworkManager 2020-09-02 15:56:10 +02:00
Thomas Haller
b1e7fb9757 core: log message about secret-key version and filename 2020-09-02 15:12:53 +02:00
Thomas Haller
4018504247 man: fix description of v2 secret key in man NetworkManager
Fixes: 0aa09da5f4 ('man: explain "/var/lib/NetworkManager/secret-key" in `man NetworkManager`')
2020-09-02 14:52:46 +02:00
Thomas Haller
0aa09da5f4 man: explain "/var/lib/NetworkManager/secret-key" in man NetworkManager 2020-09-02 12:10:04 +02:00
Thomas Haller
4a084a2bcb shared: rename "gs_local_option_context" to "nm_auto_free_option_context"
The "gs_*" macros originate from the (no longer existing) libgsystem library.
We still have them, because so far we didn't go through the effort of
renaming the API.

Aside that oddity, our cleanup API is called "nm_auto*". There is no need
to add new API with the old name.
2020-09-02 10:36:58 +02:00
Antonio Cardace
d5c05d07c7 initrd: fix memory leak
Signed-off-by: Antonio Cardace <acardace@redhat.com>
Fixes: 9f9609555d ('initrd: add configuration generator')
2020-09-01 19:05:10 +02:00
Thomas Haller
d619de7727 shared/trivial: add code comment about the purpose of "nm-default.h" header 2020-09-01 17:27:17 +02:00
Thomas Haller
cc763243e0 libnm: fix order of includes in "libnm-core/nm-libnm-core-intern/nm-libnm-core-utils.c" 2020-09-01 17:21:31 +02:00
Antonio Cardace
5748e986aa initrd: merge branch 'ac/dhcpclass-initrd'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/614

Signed-off-by: Antonio Cardace <acardace@redhat.com>
2020-09-01 16:59:19 +02:00
Antonio Cardace
c056cb9306 initrd: parse 'rd.net.dhcp.vendor-class' kernel cmdline arg
This arguments makes NM set the ipv4.dhcp-vendor-class-identifier
property for all connections.

https://bugzilla.redhat.com/show_bug.cgi?id=1872299

Signed-off-by: Antonio Cardace <acardace@redhat.com>
2020-09-01 11:14:46 +02:00
Antonio Cardace
5cca669ff3 core: add 'dhcp-vendor-class-identifier' validation function
So that it can be reused.

Signed-off-by: Antonio Cardace <acardace@redhat.com>
2020-09-01 09:34:29 +02:00
Yuri Chornoivan
f15c7bbe8d po: update Ukrainian (uk) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/615
2020-08-31 13:38:07 +02:00
Thomas Haller
6b63b68a41 contrib: accept missing .sig file for older releases in "release.sh"
On older branches, the build script does not create a GPG signature of
the release tarball. Let the release script be graceful against that.
2020-08-31 13:20:24 +02:00
Beniamino Galvani
e404585e60 device: fix autoactivating virtual devices after a failure
When a virtual device fails, its state goes to FAIL and then
DISCONNECTED. In DISCONNECTED we call schedule_activate_check() to
schedule an auto-activation if needed. We also schudule the deletion
of the link through delete_on_deactivate_check_and_schedule(). The
auto-activation attempt fails because the link deletion unmanages the
device; as a result, the device doesn't try to auto-activate again.

To fix this:

 - don't allow the device to auto-activate if the device deletion is
   pending;

 - check again if the device can be auto-activated after its deletion.

https://bugzilla.redhat.com/show_bug.cgi?id=1818697
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/613
2020-08-31 11:41:23 +02:00
Thomas Haller
a75dfc73e2 dhcp: workaround "maybe-uninitialized" in dhcp_event_cb()
With LTO we get a compiler warning:

    src/dhcp/nm-dhcp-systemd.c: In function dhcp_event_cb:
    src/dhcp/nm-dhcp-systemd.c:554: error: lease may be used uninitialized in this function [-Werror=maybe-uninitialized]
      554 |   r = sd_dhcp_lease_get_server_identifier (lease, &addr);
          |
    src/dhcp/nm-dhcp-systemd.c:528: note: lease was declared here
      528 |  sd_dhcp_lease *lease;
          |

Fixes: 7f217d0345 ('core: honor the ipv4.dhcp-reject-servers property')
2020-08-28 14:28:56 +02:00
Thomas Haller
12e8557476 gitlab-ci: fix workarounds for Ubuntu 16.04 in tests
The detection for Ubuntu 16.04 was broken. By now /etc/os-release
contains

    VERSION="16.04.7 LTS (Xenial Xerus)"
2020-08-28 14:24:32 +02:00
Thomas Haller
918ebd600a device: fix casting pointer to enum for sriov_reset_on_deactivate_cb()
Avoids a compiler warning:

    ../src/devices/nm-device.c:16079:26: error: cast to smaller integer type 'NMDeviceStateReason' from 'gpointer' (aka 'void *') [-Werror,-Wvoid-pointer-to-enum-cast]
            deactivate_ready (self, (NMDeviceStateReason) reason);
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fixes: 121c58f0c4 ('core: set number of SR-IOV VFs asynchronously')
2020-08-28 12:39:56 +02:00
Thomas Haller
818d146d88 core/trivial: replace "XXX" markers with "TODO"
"XXX" is used for tagging parts of code that still need work before
merging a patch. If you want to highlight/mark a comment which is merged
use either "TODO" or "FIXME".

Of course, even "TODO" and "FIXME" should be avoided in favor of just
doing/fixing it. Such things tend to never be done/fixed.
2020-08-27 17:10:55 +02:00
Beniamino Galvani
bc4c81fb43 dhcp: merge branch 'bg/dhcp-reject-servers'
https://bugzilla.redhat.com/show_bug.cgi?id=1827410
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/581
2020-08-26 17:30:45 +02:00
Beniamino Galvani
b609088ae6 dhcp: nettools: change event handler signature 2020-08-26 17:28:45 +02:00
Beniamino Galvani
7f217d0345 core: honor the ipv4.dhcp-reject-servers property 2020-08-26 17:28:45 +02:00
Beniamino Galvani
757fa4711f all: add ipv4.dhcp-reject-servers property
Add a new dhcp-reject-servers property to the ipv4 setting, that
allows specifying a list of server-ids from which offers should be
rejected.
2020-08-26 17:28:45 +02:00
Beniamino Galvani
c25aed5051 n-dhcp4: add n_dhcp4_client_lease_get_server_identifier()
Add new API to query the server identifier of a lease.
2020-08-26 17:08:15 +02:00
Beniamino Galvani
ae7d1e2b7a libnm-core: use nm_strvarray_remove_first() 2020-08-26 17:08:13 +02:00
Beniamino Galvani
418d20acc9 shared: add nm_strvarray_remove_first()
Co-authored-by: Thomas Haller <thaller@redhat.com>
2020-08-26 17:08:00 +02:00
Antonio Cardace
dbab673f76 libnm: move nm_setting_ip4_config_get_dhcp_vendor_class_identifier() to "libnm_1_26_4"
nm_setting_ip4_config_get_dhcp_vendor_class_identifier() was
backported to nm-1-26 branch, and will be released as 1.26.4.
As such, on the stable branch the symbol will be placed in a
separate symbol version ("libnm_1_26_4").

To support the upgrade path from 1.26.4+ to 1.28+, we
want this symbol also present on master.

Signed-off-by: Antonio Cardace <acardace@redhat.com>
2020-08-26 15:23:23 +02:00
Antonio Cardace
21e6ed2852 dhcp: merge branch 'ac/dhcp_vendor_class_opt'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/610
2020-08-26 09:45:24 +02:00
Antonio Cardace
5da0939a3f dhcp: implement dhcp-vendor-class-identifier option for systemd's DHCP
client

https://bugzilla.redhat.com/show_bug.cgi?id=1871042
Signed-off-by: Antonio Cardace <acardace@redhat.com>
2020-08-26 09:44:11 +02:00
Antonio Cardace
f8a7290153 dhcp: implement dhcp-vendor-class-identifier option for internal DHCP client
https://bugzilla.redhat.com/show_bug.cgi?id=1871042
Signed-off-by: Antonio Cardace <acardace@redhat.com>
2020-08-26 09:44:10 +02:00
Antonio Cardace
f71f40bc20 core: add support for dhcpv4 vendor class identifier option
https://bugzilla.redhat.com/show_bug.cgi?id=1871042
Signed-off-by: Antonio Cardace <acardace@redhat.com>
2020-08-26 09:44:09 +02:00
Antonio Cardace
e9ed5f02ba ifcfg-rh: add support for the DHCP_VENDOR_CLASS_IDENTIFIER option
https://bugzilla.redhat.com/show_bug.cgi?id=1871042
Signed-off-by: Antonio Cardace <acardace@redhat.com>
2020-08-26 09:44:09 +02:00
Antonio Cardace
d7235394b2 libnm-core,clients: add support for ipv4.dhcp-vendor-class-identifier option
https://bugzilla.redhat.com/show_bug.cgi?id=1871042
Signed-off-by: Antonio Cardace <acardace@redhat.com>
2020-08-26 09:44:05 +02:00
Thomas Haller
9b54d175bf shared: avoid multiple strlen() calls in _nm_utils_strv_dup_packed()
Instead of calling strlen() for all strings twice, remember the length
in a temporary buffer.

Yes, this is measurably faster.
2020-08-25 12:45:26 +02:00
Thomas Haller
2e0cd52474 shared: add nm_utils_strv_dup_packed() util 2020-08-25 09:54:11 +02:00
Thomas Haller
c25f4d947a shared: enforce compatible C-type argument for nm_utils_strv_dup()
Use a macro that uses NM_CAST_STRV_CC() to cast the strv argument. Note that
NM_CAST_STRV_CC() uses C11's _Generic() to check whether the argument is
of a valid type.
2020-08-25 08:54:36 +02:00
Thomas Haller
94b4276058 dns: merge branch 'th/dns-rc-manager-auto'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/602
2020-08-24 21:18:06 +02:00
Thomas Haller
c1f9a0fff1 dns: add new "rc-manager=auto" mode
Add a new `main.rc-manager=auto` setting, that favours to use
systemd-resolved (and not touch "/etc/resolv.conf" but configure
it via D-Bus), or falls back to `resolvconf`/`netconfig` binaries
if they are installed and enabled at compile time.
As final fallback use "symlink", like before.

Note that on Fedora there is no "openresolv" package ([1]). Instead, "systemd"
package provides "/usr/sbin/resolvconf" as a wrapper for systemd-resolved's
"resolvectl". On such a system the fallback to resolvconf is always
wrong, because NetworkManager should either talk to systemd-resolved
directly or not but never call "/usr/sbin/resolvconf". So, the special handling
for resolvconf and netconfig is only done if NetworkManager was build with these
applications explicitly enabled.

Note that SUSE builds NetworkManager with

    --with-netconfig=yes
    --with-config-dns-rc-manager-default=netconfig

and the new option won't be used there either. But of course, netconfig
already does all the right things on SUSE.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=668153

Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-08-24 21:13:21 +02:00