summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* dns: change default DNS priority of VPNs to -50bg/dns-vpnBeniamino Galvani2020-10-094-4/+9
| | | | | | | | | | | | | | | | | | | | | | | Change the default DNS priority of VPNs to -50, to avoid leaking queries out of full-tunnel VPNs. This is a change in behavior. In particular: - when using dns=default (i.e. no split-dns) before this patch both VPN and the local name server were added (in this order) to resolv.conf; the result was that depending on resolv.conf options and resolver implementation, the name servers were tried in a certain manner which does not prevent DNS leaks. With this change, only the VPN name server is added to resolv.conf. - When using a split-dns plugin (systemd-resolved or dnsmasq), before this patch the full-tunnel VPN would get all queries except those ending in a local domain, that would instead be directed to the local server. After this patch, the VPN gets all queries. To revert to the old behavior, set the DNS priority to 50 in the connection profile.
* dns: add wildcard domain to VPNs with never-default=no and no domainsBeniamino Galvani2020-10-091-2/+19
| | | | | | | | | | If a VPN has never-default=no but doesn't get a default route (this can happen for example when the server pushes routes with openconnect), and there are no search domains, then the name servers pushed by the server would be unused. It is preferable in this case to use the VPN DNS server for all queries. https://bugzilla.redhat.com/show_bug.cgi?id=1863041
* core: add never-default field to NMIP{4,6}ConfigBeniamino Galvani2020-10-094-0/+74
|
* dns: slightly refactor rebuild_domain_lists()Beniamino Galvani2020-10-091-6/+7
| | | | Centralize wildcard domain assignment in a single place.
* shared: enforce trailing semicolon after NM_UTILS_STRING_TABLE_LOOKUP_DEFINE()Thomas Haller2020-10-081-1/+2
|
* all: use _NM_DUMMY_STRUCT_FOR_TRAILING_SEMICOLON define for trailing semicolonThomas Haller2020-10-082-5/+5
|
* all: add trailing semicolon after NM_UTILS_STRING_TABLE_LOOKUP_DEFINE()Thomas Haller2020-10-082-4/+6
|
* shared: add NM_HASH_OBFUSCATE_PTR_STR() helper macroThomas Haller2020-10-081-0/+8
| | | | | Contrary to NM_HASH_OBFUSCATE_PTR(), this allows to special case a %NULL pointer. Also, it quotes the obfuscated value in square brackets.
* systemd: merge branch systemd into masterThomas Haller2020-10-083-14/+88
|\
| * systemd: update code from upstream (2020-10-08)Thomas Haller2020-10-084-16/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a direct dump from systemd git. ====== SYSTEMD_DIR=../systemd COMMIT=cd2065989163a5b6f71c8f1e4a8d73f1be63a52b ( cd "$SYSTEMD_DIR" git checkout "$COMMIT" git reset --hard git clean -fdx ) git ls-files -z :/src/systemd/src/ \ :/shared/systemd/src/ \ :/shared/nm-std-aux/unaligned.h | \ xargs -0 rm -f nm_copy_sd_shared() { mkdir -p "./shared/systemd/$(dirname "$1")" cp "$SYSTEMD_DIR/$1" "./shared/systemd/$1" } nm_copy_sd_core() { mkdir -p "./src/systemd/$(dirname "$1")" cp "$SYSTEMD_DIR/$1" "./src/systemd/$1" } nm_copy_sd_stdaux() { mkdir -p "./shared/nm-std-aux/" cp "$SYSTEMD_DIR/$1" "./shared/nm-std-aux/${1##*/}" } nm_copy_sd_core "src/libsystemd-network/arp-util.c" nm_copy_sd_core "src/libsystemd-network/arp-util.h" nm_copy_sd_core "src/libsystemd-network/dhcp-identifier.c" nm_copy_sd_core "src/libsystemd-network/dhcp-identifier.h" nm_copy_sd_core "src/libsystemd-network/dhcp-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp-lease-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp-network.c" nm_copy_sd_core "src/libsystemd-network/dhcp-option.c" nm_copy_sd_core "src/libsystemd-network/dhcp-packet.c" nm_copy_sd_core "src/libsystemd-network/dhcp-protocol.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-lease-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-network.c" nm_copy_sd_core "src/libsystemd-network/dhcp6-option.c" nm_copy_sd_core "src/libsystemd-network/dhcp6-protocol.h" nm_copy_sd_core "src/libsystemd-network/lldp-internal.h" nm_copy_sd_core "src/libsystemd-network/lldp-neighbor.c" nm_copy_sd_core "src/libsystemd-network/lldp-neighbor.h" nm_copy_sd_core "src/libsystemd-network/lldp-network.c" nm_copy_sd_core "src/libsystemd-network/lldp-network.h" nm_copy_sd_core "src/libsystemd-network/network-internal.c" nm_copy_sd_core "src/libsystemd-network/network-internal.h" nm_copy_sd_core "src/libsystemd-network/sd-dhcp-client.c" nm_copy_sd_core "src/libsystemd-network/sd-dhcp-lease.c" nm_copy_sd_core "src/libsystemd-network/sd-dhcp6-client.c" nm_copy_sd_core "src/libsystemd-network/sd-dhcp6-lease.c" nm_copy_sd_core "src/libsystemd-network/sd-ipv4acd.c" nm_copy_sd_core "src/libsystemd-network/sd-ipv4ll.c" nm_copy_sd_core "src/libsystemd-network/sd-lldp.c" nm_copy_sd_core "src/libsystemd/sd-event/event-source.h" nm_copy_sd_core "src/libsystemd/sd-event/event-util.c" nm_copy_sd_core "src/libsystemd/sd-event/event-util.h" nm_copy_sd_core "src/libsystemd/sd-event/sd-event.c" nm_copy_sd_core "src/libsystemd/sd-id128/id128-util.c" nm_copy_sd_core "src/libsystemd/sd-id128/id128-util.h" nm_copy_sd_core "src/libsystemd/sd-id128/sd-id128.c" nm_copy_sd_core "src/systemd/_sd-common.h" nm_copy_sd_core "src/systemd/sd-dhcp-client.h" nm_copy_sd_core "src/systemd/sd-dhcp-lease.h" nm_copy_sd_core "src/systemd/sd-dhcp-option.h" nm_copy_sd_core "src/systemd/sd-dhcp6-client.h" nm_copy_sd_core "src/systemd/sd-dhcp6-lease.h" nm_copy_sd_core "src/systemd/sd-dhcp6-option.h" nm_copy_sd_core "src/systemd/sd-event.h" nm_copy_sd_core "src/systemd/sd-id128.h" nm_copy_sd_core "src/systemd/sd-ipv4acd.h" nm_copy_sd_core "src/systemd/sd-ipv4ll.h" nm_copy_sd_core "src/systemd/sd-lldp.h" nm_copy_sd_core "src/systemd/sd-ndisc.h" nm_copy_sd_shared "src/basic/alloc-util.c" nm_copy_sd_shared "src/basic/alloc-util.h" nm_copy_sd_shared "src/basic/async.h" nm_copy_sd_shared "src/basic/cgroup-util.h" nm_copy_sd_shared "src/basic/env-file.c" nm_copy_sd_shared "src/basic/env-file.h" nm_copy_sd_shared "src/basic/env-util.c" nm_copy_sd_shared "src/basic/env-util.h" nm_copy_sd_shared "src/basic/errno-util.h" nm_copy_sd_shared "src/basic/escape.c" nm_copy_sd_shared "src/basic/escape.h" nm_copy_sd_shared "src/basic/ether-addr-util.c" nm_copy_sd_shared "src/basic/ether-addr-util.h" nm_copy_sd_shared "src/basic/extract-word.c" nm_copy_sd_shared "src/basic/extract-word.h" nm_copy_sd_shared "src/basic/fd-util.c" nm_copy_sd_shared "src/basic/fd-util.h" nm_copy_sd_shared "src/basic/fileio.c" nm_copy_sd_shared "src/basic/fileio.h" nm_copy_sd_shared "src/basic/format-util.c" nm_copy_sd_shared "src/basic/format-util.h" nm_copy_sd_shared "src/basic/fs-util.c" nm_copy_sd_shared "src/basic/fs-util.h" nm_copy_sd_shared "src/basic/hash-funcs.c" nm_copy_sd_shared "src/basic/hash-funcs.h" nm_copy_sd_shared "src/basic/hashmap.c" nm_copy_sd_shared "src/basic/hashmap.h" nm_copy_sd_shared "src/basic/hexdecoct.c" nm_copy_sd_shared "src/basic/hexdecoct.h" nm_copy_sd_shared "src/basic/hostname-util.c" nm_copy_sd_shared "src/basic/hostname-util.h" nm_copy_sd_shared "src/basic/in-addr-util.c" nm_copy_sd_shared "src/basic/in-addr-util.h" nm_copy_sd_shared "src/basic/io-util.c" nm_copy_sd_shared "src/basic/io-util.h" nm_copy_sd_shared "src/basic/list.h" nm_copy_sd_shared "src/basic/log.h" nm_copy_sd_shared "src/basic/macro.h" nm_copy_sd_shared "src/basic/memory-util.c" nm_copy_sd_shared "src/basic/memory-util.h" nm_copy_sd_shared "src/basic/mempool.c" nm_copy_sd_shared "src/basic/mempool.h" nm_copy_sd_shared "src/basic/missing_fcntl.h" nm_copy_sd_shared "src/basic/missing_random.h" nm_copy_sd_shared "src/basic/missing_socket.h" nm_copy_sd_shared "src/basic/missing_stat.h" nm_copy_sd_shared "src/basic/missing_syscall.h" nm_copy_sd_shared "src/basic/missing_type.h" nm_copy_sd_shared "src/basic/parse-util.c" nm_copy_sd_shared "src/basic/parse-util.h" nm_copy_sd_shared "src/basic/path-util.c" nm_copy_sd_shared "src/basic/path-util.h" nm_copy_sd_shared "src/basic/prioq.c" nm_copy_sd_shared "src/basic/prioq.h" nm_copy_sd_shared "src/basic/process-util.c" nm_copy_sd_shared "src/basic/process-util.h" nm_copy_sd_shared "src/basic/random-util.c" nm_copy_sd_shared "src/basic/random-util.h" nm_copy_sd_shared "src/basic/set.h" nm_copy_sd_shared "src/basic/signal-util.c" nm_copy_sd_shared "src/basic/signal-util.h" nm_copy_sd_shared "src/basic/siphash24.h" nm_copy_sd_shared "src/basic/socket-util.c" nm_copy_sd_shared "src/basic/socket-util.h" nm_copy_sd_shared "src/basic/sort-util.h" nm_copy_sd_shared "src/basic/sparse-endian.h" nm_copy_sd_shared "src/basic/stat-util.c" nm_copy_sd_shared "src/basic/stat-util.h" nm_copy_sd_shared "src/basic/stdio-util.h" nm_copy_sd_shared "src/basic/string-table.c" nm_copy_sd_shared "src/basic/string-table.h" nm_copy_sd_shared "src/basic/string-util.c" nm_copy_sd_shared "src/basic/string-util.h" nm_copy_sd_shared "src/basic/strv.c" nm_copy_sd_shared "src/basic/strv.h" nm_copy_sd_shared "src/basic/strxcpyx.c" nm_copy_sd_shared "src/basic/strxcpyx.h" nm_copy_sd_shared "src/basic/time-util.c" nm_copy_sd_shared "src/basic/time-util.h" nm_copy_sd_shared "src/basic/tmpfile-util.c" nm_copy_sd_shared "src/basic/tmpfile-util.h" nm_copy_sd_shared "src/basic/umask-util.h" nm_copy_sd_shared "src/basic/user-util.h" nm_copy_sd_shared "src/basic/utf8.c" nm_copy_sd_shared "src/basic/utf8.h" nm_copy_sd_shared "src/basic/util.c" nm_copy_sd_shared "src/basic/util.h" nm_copy_sd_shared "src/shared/dns-domain.c" nm_copy_sd_shared "src/shared/dns-domain.h" nm_copy_sd_shared "src/shared/web-util.c" nm_copy_sd_shared "src/shared/web-util.h" nm_copy_sd_stdaux "src/basic/unaligned.h"
* | systemd: basic/missing_syscall: fix syscall numbers for mips*Michael Biebl2020-10-081-2/+26
| | | | | | | | | | | | | | | | Thanks Christian Brauner @brauner https://github.com/systemd/systemd/commit/cd2065989163a5b6f71c8f1e4a8d73f1be63a52b https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/545
* | shared/c-rbtree: reimportThomas Haller2020-10-070-0/+0
|\ \ | | | | | | | | | git subtree pull --prefix shared/c-rbtree git@github.com:c-util/c-rbtree.git master --squash
| * | Squashed 'shared/c-rbtree/' changes from 7624b79b26d0..bd1c14dc0d93Thomas Haller2020-10-072-11/+11
| | | | | | | | | | | | | | | | | | | | | bd1c14dc0d93 c-rbtree: reduce alignment constraints git-subtree-dir: shared/c-rbtree git-subtree-split: bd1c14dc0d939edf6186057d4ed7a623e21c5209
* | | c-rbtree: reduce alignment constraintsDavid Rheinsberg2020-10-072-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are some Debian-supported architectures where `max_align_t` is only aligned to 4-bytes. This is unfortunate and breaks our assumptions. While glibc-malloc still guarantees 8 / 16 bytes alignment, this is not necessarily guaranteed by the C standard (and alternative allocators will deviate (see jemalloc, for instance)). Fortunately, we only need 2 flags, so a 4-byte alignment is more than enough. Reported-by: Thomas Haller Signed-off-by: David Rheinsberg <david.rheinsberg@gmail.com> https://github.com/c-util/c-rbtree/pull/4
* | | platform/tests: skip test_platform_ip_address_pretty_sort_cmp() on non-amd64 ↵Thomas Haller2020-10-071-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | archs The test only works on amd64, because it relies on the memory layout of the structures. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/546
* | | platform/tests: print details about test failure for ↵Thomas Haller2020-10-071-0/+13
| | | | | | | | | | | | | | | | | | | | | test_platform_ip_address_pretty_sort_cmp() When the test is about to fail, print the wrong data to help debugging the test failure.
* | | platform/tests: adjust regeneration of test code for ↵Thomas Haller2020-10-071-4/+6
| | | | | | | | | | | | | | | | | | | | | test_platform_ip_address_pretty_sort_cmp() Since re-formatting our source code, the generated output no longer matched the required formatting. Adjust it.
* | | platform: use also statvfs() to check for udevdAlfonso Sánchez-Beato2020-10-061-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check whether or not there is a running udevd by using statvfs() on "/sys" and use access() as a fallback. This is in line with what is done by systemd [1] and helps in case NM is not really running in a container but has been confined by a MAC so it does not have full access to sysfs (access() returns EACCES). [1] https://github.com/systemd/systemd/blob/v246/src/basic/stat-util.c#L132 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/639
* | | tests: adjust timeouts for test nm_utils_kill_child()Thomas Haller2020-10-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test spawns processes and tries to kill them, with timeouts and retry. That is inherently racy, and it's hard to deterministically test the interesting cases, without having unstable tests. Try to adjust the timeout, to make it more stable: 14:02:27 /builds/NetworkManager/NetworkManager/tools/run-nm-test.sh --called-from-make /builds/NetworkManager/NetworkManager/build --launch-dbus=auto /builds/NetworkManager/NetworkManager/build/src/tests/test-core-with-expect --- stdout --- # random seed: R02S7748fae8fc946b7a755b72efb5815250 1..5 # Start of general tests ok 1 /general/nm_utils_monotonic_timestamp_as_boottime # NetworkManager-DEBUG: <debug> [1601992953.4091] kill child process 'test-s-1-3' (18615): sending SIGKILL... # NetworkManager-DEBUG: <debug> [1601992953.4242] kill child process 'test-s-1-3' (18615): waiting for process to terminate after sending no signal (0) and SIGKILL... # NetworkManager-DEBUG: <debug> [1601992953.4257] kill child process 'test-s-1-3' (18615): after sending no signal (0) and SIGKILL, process 18615 exited by signal 9 (20807 usec elapsed) Bail out! GLib:ERROR:../src/tests/test-core-with-expect.c:154:test_nm_utils_kill_child_sync_do: Did not see expected message NetworkManager-DEBUG: *<debug> [*] kill child process 'test-s-1-3' (*): waiting up to 1 milliseconds for process to terminate normally after sending no signal (0)... Bail out! test:ERROR:../src/tests/test-core-with-expect.c:457:test_nm_utils_kill_child: assertion failed (exit_status == 0): (6 == 0) --- stderr --- ** GLib:ERROR:../src/tests/test-core-with-expect.c:154:test_nm_utils_kill_child_sync_do: Did not see expected message NetworkManager-DEBUG: *<debug> [*] kill child process 'test-s-1-3' (*): waiting up to 1 milliseconds for process to terminate normally after sending no signal (0)... ** test:ERROR:../src/tests/test-core-with-expect.c:457:test_nm_utils_kill_child: assertion failed (exit_status == 0): (6 == 0) /builds/NetworkManager/NetworkManager/tools/run-nm-test.sh: line 279: 18325 Aborted "${NMTST_DBUS_RUN_SESSION[@]}" "${NMTST_LIBTOOL[@]}" "$NMTST_VALGRIND" --quiet --error-exitcode=$VALGRIND_ERROR --leak-check=full --gen-suppressions=all "${NMTST_SUPPRESSIONS[@]}" --num-callers=100 --log-file="$LOGFILE" "$TEST" "$@"
* | | CONTRIBUTING: add comments about our clang-format and various adjustments of ↵Thomas Haller2020-10-061-14/+33
| | | | | | | | | | | | markdown
* | | build/release: before release check that all gitlab-ci tests ran successfullyThomas Haller2020-10-061-1/+37
| | |
* | | wifi/iwd: merge branch 'balrog-kun:iwd-fixes'Thomas Haller2020-10-062-43/+53
|\ \ \ | | | | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/640
| * | | iwd: Subscribe to object-added/removed ObjectManager signalsAndrew Zaborowski2020-10-061-17/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GDBusObjectManagerClient's interface-added and interface-removed signals are not emitted when the new interfaces are added to a completely new object or the removal results in the object disappearing. In other words one interface is never reported both through interface-added and object-added (or -removed) signals. This kind of makes sense but isn't documented explicitly so interface-added seemed to correspond to DBus InterfacesAdded signals which it doesn't. We need to watch for both kinds of signals and although most things work without us receiving the signals at all, it causes some race conditions. For example on hotplug, devices wouldn't transition to "disconnected" if a device was discovered by NMManager before it appeared on IWD's dbus interface because that scenario relied on the dbus signal.
| * | | iwd: Disable periodic scanning when connectedAndrew Zaborowski2020-10-061-15/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The automatic scanning every 20 seconds while connected has been annoying users because of the extra connection latency, drop it. The UIs are supposed to be requesting scans whenever an AP list update is needed (?).
| * | | iwd: Disconnect signals in NMDeviceIwd's disposeAndrew Zaborowski2020-10-061-11/+1
|/ / / | | | | | | | | | | | | | | | | | | Fix a crash on device unplugging caused by keeping our signal handlers for GDBusProxies connected after a call to dispose(). Do this by replacing most cleanup steps by a nm_device_iwd_set_dbus_object(self, NULL) call which is more meticulous.
* | | build: fix "create-exports-NetworkManager.sh" to fail if "nm" failsThomas Haller2020-10-061-4/+7
| | | | | | | | | | | | | | | | | | | | | Despite `set -e`, the shell script does not fail if the command in the here document fails. This can happen if binutils' "nm" fails. NM=/bin/false "./tools/create-exports-NetworkManager.sh" --called-from-build "."
* | | NEWS: updateThomas Haller2020-10-061-3/+8
| | |
* | | build/travis: remove travis integrationThomas Haller2020-10-052-87/+0
| | | | | | | | | | | | | | | | | | | | | We already build a large variety of configurations in gitlab-ci, we don't need yet another configuration to run tests on travis-ci. Also, because the travis-ci setup is outdated and we don't look at it. Let's focus on gitlab-ci instead.
* | | systemd: workaround compilation failures against old glibcThomas Haller2020-10-052-0/+6
| | | | | | | | | | | | | | | | | | Building against older libc/kernel headers can fail, because our glue code for systemd has issues. Fix them by forward declaring "struct statx" and by disabling parts of "socket-util.c".
* | | contrib/release: restore original branch in dry-run modeThomas Haller2020-10-051-1/+7
| | | | | | | | | | | | | | | | | | | | | In dry-run mode, reset the branch to the state where it was before. Also, in real mode delete the temporary "release-branch" branch on success.
* | | release: bump version to 1.29.0 (development)1.29.0-devBeniamino Galvani2020-10-052-3/+3
| | |
* | | release: bump version to 1.27.90 (1.28-rc1)1.28-rc1Beniamino Galvani2020-10-052-2/+2
| | |
* | | NEWS: updateBeniamino Galvani2020-10-051-8/+28
| | |
* | | systemd: merge branch systemd into masterBeniamino Galvani2020-10-0512-42/+119
|\ \ \ | | |/ | |/|
| * | systemd: update code from upstream (2020-10-05)Beniamino Galvani2020-10-0512-40/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a direct dump from systemd git. ====== SYSTEMD_DIR=../systemd COMMIT=b182195acc3f5eeb97b2b4b60d36796b399e5a01 ( cd "$SYSTEMD_DIR" git checkout "$COMMIT" git reset --hard git clean -fdx ) git ls-files -z :/src/systemd/src/ \ :/shared/systemd/src/ \ :/shared/nm-std-aux/unaligned.h | \ xargs -0 rm -f nm_copy_sd_shared() { mkdir -p "./shared/systemd/$(dirname "$1")" cp "$SYSTEMD_DIR/$1" "./shared/systemd/$1" } nm_copy_sd_core() { mkdir -p "./src/systemd/$(dirname "$1")" cp "$SYSTEMD_DIR/$1" "./src/systemd/$1" } nm_copy_sd_stdaux() { mkdir -p "./shared/nm-std-aux/" cp "$SYSTEMD_DIR/$1" "./shared/nm-std-aux/${1##*/}" } nm_copy_sd_core "src/libsystemd-network/arp-util.c" nm_copy_sd_core "src/libsystemd-network/arp-util.h" nm_copy_sd_core "src/libsystemd-network/dhcp-identifier.c" nm_copy_sd_core "src/libsystemd-network/dhcp-identifier.h" nm_copy_sd_core "src/libsystemd-network/dhcp-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp-lease-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp-network.c" nm_copy_sd_core "src/libsystemd-network/dhcp-option.c" nm_copy_sd_core "src/libsystemd-network/dhcp-packet.c" nm_copy_sd_core "src/libsystemd-network/dhcp-protocol.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-lease-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-network.c" nm_copy_sd_core "src/libsystemd-network/dhcp6-option.c" nm_copy_sd_core "src/libsystemd-network/dhcp6-protocol.h" nm_copy_sd_core "src/libsystemd-network/lldp-internal.h" nm_copy_sd_core "src/libsystemd-network/lldp-neighbor.c" nm_copy_sd_core "src/libsystemd-network/lldp-neighbor.h" nm_copy_sd_core "src/libsystemd-network/lldp-network.c" nm_copy_sd_core "src/libsystemd-network/lldp-network.h" nm_copy_sd_core "src/libsystemd-network/network-internal.c" nm_copy_sd_core "src/libsystemd-network/network-internal.h" nm_copy_sd_core "src/libsystemd-network/sd-dhcp-client.c" nm_copy_sd_core "src/libsystemd-network/sd-dhcp-lease.c" nm_copy_sd_core "src/libsystemd-network/sd-dhcp6-client.c" nm_copy_sd_core "src/libsystemd-network/sd-dhcp6-lease.c" nm_copy_sd_core "src/libsystemd-network/sd-ipv4acd.c" nm_copy_sd_core "src/libsystemd-network/sd-ipv4ll.c" nm_copy_sd_core "src/libsystemd-network/sd-lldp.c" nm_copy_sd_core "src/libsystemd/sd-event/event-source.h" nm_copy_sd_core "src/libsystemd/sd-event/event-util.c" nm_copy_sd_core "src/libsystemd/sd-event/event-util.h" nm_copy_sd_core "src/libsystemd/sd-event/sd-event.c" nm_copy_sd_core "src/libsystemd/sd-id128/id128-util.c" nm_copy_sd_core "src/libsystemd/sd-id128/id128-util.h" nm_copy_sd_core "src/libsystemd/sd-id128/sd-id128.c" nm_copy_sd_core "src/systemd/_sd-common.h" nm_copy_sd_core "src/systemd/sd-dhcp-client.h" nm_copy_sd_core "src/systemd/sd-dhcp-lease.h" nm_copy_sd_core "src/systemd/sd-dhcp-option.h" nm_copy_sd_core "src/systemd/sd-dhcp6-client.h" nm_copy_sd_core "src/systemd/sd-dhcp6-lease.h" nm_copy_sd_core "src/systemd/sd-dhcp6-option.h" nm_copy_sd_core "src/systemd/sd-event.h" nm_copy_sd_core "src/systemd/sd-id128.h" nm_copy_sd_core "src/systemd/sd-ipv4acd.h" nm_copy_sd_core "src/systemd/sd-ipv4ll.h" nm_copy_sd_core "src/systemd/sd-lldp.h" nm_copy_sd_core "src/systemd/sd-ndisc.h" nm_copy_sd_shared "src/basic/alloc-util.c" nm_copy_sd_shared "src/basic/alloc-util.h" nm_copy_sd_shared "src/basic/async.h" nm_copy_sd_shared "src/basic/cgroup-util.h" nm_copy_sd_shared "src/basic/env-file.c" nm_copy_sd_shared "src/basic/env-file.h" nm_copy_sd_shared "src/basic/env-util.c" nm_copy_sd_shared "src/basic/env-util.h" nm_copy_sd_shared "src/basic/errno-util.h" nm_copy_sd_shared "src/basic/escape.c" nm_copy_sd_shared "src/basic/escape.h" nm_copy_sd_shared "src/basic/ether-addr-util.c" nm_copy_sd_shared "src/basic/ether-addr-util.h" nm_copy_sd_shared "src/basic/extract-word.c" nm_copy_sd_shared "src/basic/extract-word.h" nm_copy_sd_shared "src/basic/fd-util.c" nm_copy_sd_shared "src/basic/fd-util.h" nm_copy_sd_shared "src/basic/fileio.c" nm_copy_sd_shared "src/basic/fileio.h" nm_copy_sd_shared "src/basic/format-util.c" nm_copy_sd_shared "src/basic/format-util.h" nm_copy_sd_shared "src/basic/fs-util.c" nm_copy_sd_shared "src/basic/fs-util.h" nm_copy_sd_shared "src/basic/hash-funcs.c" nm_copy_sd_shared "src/basic/hash-funcs.h" nm_copy_sd_shared "src/basic/hashmap.c" nm_copy_sd_shared "src/basic/hashmap.h" nm_copy_sd_shared "src/basic/hexdecoct.c" nm_copy_sd_shared "src/basic/hexdecoct.h" nm_copy_sd_shared "src/basic/hostname-util.c" nm_copy_sd_shared "src/basic/hostname-util.h" nm_copy_sd_shared "src/basic/in-addr-util.c" nm_copy_sd_shared "src/basic/in-addr-util.h" nm_copy_sd_shared "src/basic/io-util.c" nm_copy_sd_shared "src/basic/io-util.h" nm_copy_sd_shared "src/basic/list.h" nm_copy_sd_shared "src/basic/log.h" nm_copy_sd_shared "src/basic/macro.h" nm_copy_sd_shared "src/basic/memory-util.c" nm_copy_sd_shared "src/basic/memory-util.h" nm_copy_sd_shared "src/basic/mempool.c" nm_copy_sd_shared "src/basic/mempool.h" nm_copy_sd_shared "src/basic/missing_fcntl.h" nm_copy_sd_shared "src/basic/missing_random.h" nm_copy_sd_shared "src/basic/missing_socket.h" nm_copy_sd_shared "src/basic/missing_stat.h" nm_copy_sd_shared "src/basic/missing_syscall.h" nm_copy_sd_shared "src/basic/missing_type.h" nm_copy_sd_shared "src/basic/parse-util.c" nm_copy_sd_shared "src/basic/parse-util.h" nm_copy_sd_shared "src/basic/path-util.c" nm_copy_sd_shared "src/basic/path-util.h" nm_copy_sd_shared "src/basic/prioq.c" nm_copy_sd_shared "src/basic/prioq.h" nm_copy_sd_shared "src/basic/process-util.c" nm_copy_sd_shared "src/basic/process-util.h" nm_copy_sd_shared "src/basic/random-util.c" nm_copy_sd_shared "src/basic/random-util.h" nm_copy_sd_shared "src/basic/set.h" nm_copy_sd_shared "src/basic/signal-util.c" nm_copy_sd_shared "src/basic/signal-util.h" nm_copy_sd_shared "src/basic/siphash24.h" nm_copy_sd_shared "src/basic/socket-util.c" nm_copy_sd_shared "src/basic/socket-util.h" nm_copy_sd_shared "src/basic/sort-util.h" nm_copy_sd_shared "src/basic/sparse-endian.h" nm_copy_sd_shared "src/basic/stat-util.c" nm_copy_sd_shared "src/basic/stat-util.h" nm_copy_sd_shared "src/basic/stdio-util.h" nm_copy_sd_shared "src/basic/string-table.c" nm_copy_sd_shared "src/basic/string-table.h" nm_copy_sd_shared "src/basic/string-util.c" nm_copy_sd_shared "src/basic/string-util.h" nm_copy_sd_shared "src/basic/strv.c" nm_copy_sd_shared "src/basic/strv.h" nm_copy_sd_shared "src/basic/strxcpyx.c" nm_copy_sd_shared "src/basic/strxcpyx.h" nm_copy_sd_shared "src/basic/time-util.c" nm_copy_sd_shared "src/basic/time-util.h" nm_copy_sd_shared "src/basic/tmpfile-util.c" nm_copy_sd_shared "src/basic/tmpfile-util.h" nm_copy_sd_shared "src/basic/umask-util.h" nm_copy_sd_shared "src/basic/user-util.h" nm_copy_sd_shared "src/basic/utf8.c" nm_copy_sd_shared "src/basic/utf8.h" nm_copy_sd_shared "src/basic/util.c" nm_copy_sd_shared "src/basic/util.h" nm_copy_sd_shared "src/shared/dns-domain.c" nm_copy_sd_shared "src/shared/dns-domain.h" nm_copy_sd_shared "src/shared/web-util.c" nm_copy_sd_shared "src/shared/web-util.h" nm_copy_sd_stdaux "src/basic/unaligned.h"
* | | platform: reorder fields in NMPClass structThomas Haller2020-10-051-4/+3
| | | | | | | | | | | | | | | | | | Almost always we don't care about the order of our fields inside structs. Hence, choose an order in which holes due to memory alignment are minimized.
* | | test/trivial: rename ASSERT_nmp_cache_is_consistent() function to ↵Thomas Haller2020-10-053-12/+12
| | | | | | | | | | | | | | | | | | | | | nmtst_assert_nmp_cache_is_consistent() We sometimes expose test-only functions as part of our API, to give direct access to unit tests. Such functions should have a "NMTST" prefix. Rename.
* | | platform: add typedefs for casting functions pointers to improve formattingThomas Haller2020-10-051-214/+115
| | | | | | | | | | | | | | | The autogenerated formating in these cases is rather ugly. Instead, introduce a typedef and use that for casting the function pointer.
* | | platform: fix formatting for ↵Thomas Haller2020-10-051-71/+88
| | | | | | | | | | | | _vt_cmd_plobj_id_cmp()/_vt_cmd_plobj_id_hash_update()
* | | shared: return NULL from nm_malloc_maybe_a() when asking for zero bytesThomas Haller2020-10-021-21/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | The documentation of g_alloca()/alloca() isn't clear about what happens when asking for zero bytes. Make it clear, by always returning NULL. Also, add a static assertion that @alloca_maxlen is a well-defined positive integer.
* | | platform/tests: fix bug in nmtstp_ip_address_check_lifetime() calculating ↵Thomas Haller2020-10-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | timeouts with unsigned integers As one of the arguments in unsigned, the calculation is performed as unsigned integers. That can actually lead to the wrong result. Fix it by casting to the right (signed) types.
* | | platform/trivial: use in_addr_t type for address in ↵Thomas Haller2020-10-011-1/+1
| | | | | | | | | | | | nm_platform_ip4_address_get()
* | | shared: add nm_ether_addr_to_string() helperThomas Haller2020-10-011-0/+12
| | |
* | | shared: add ether_addr field of type NMEtherAddr to NMIPAddr unionThomas Haller2020-10-014-6/+9
| | |
* | | l3cfg: merge branch 'th/l3cfg-11'Thomas Haller2020-09-3011-610/+893
|\ \ \ | | | | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/637
| * | | l3cfg: combine notify_type and payload data in NM_L3Cfg_SIGNAL_NOTIFY signalth/l3cfg-11Thomas Haller2020-09-303-88/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Emitting signals is relatively expensive, because the arguments have to be packed into a GValue. Avoid some overhad by only passing one signal argument: the notify-data which also contains the type. Also with this we can use g_cclosure_marshal_VOID__POINTER. Also, it's nice to have the type field part of the notify-data. Because clearly the notify-data union is unusable without knowing the type. That means, if a user passes the notify-data to a function, they anyway would also need to pass along the type.
| * | | l3cfg: in NML3Cfg also track the current NMPlatformLink of the platform cacheThomas Haller2020-09-302-27/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NML3Cfg tends to perform actions on an idle handler. That means, when it configures something on platform, it tends to ignore the changes and process them later. That means the currently tracked NMPObject with the platform link may not be the same as NMPlatform currently has cached. Instead, track them both, and extend the API so that it's clear that there is a difference. You now need to say whether you want the instance from the platform cache (the "next") or the currently used instance. Of course, after the idle handler runs, "next" and the current one converge. This is useful because we want to reason about the link state (also) by looking a our NML3Cfg instance. Since it already is connected to platform, it can expose the same NMPObject.
| * | | l3cfg: cleanup nm_l3cfg_platform_commit() API and function to schedule ↵Thomas Haller2020-09-303-66/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit on idle - add nm_l3cfg_platform_commit_on_idle_schedule() so that internal (and external) code can schedule a commit on an idle handler. This already existed, but is exposed now. - rename nm_l3cfg_platform_commit() to simply nm_l3cfg_commit(). There is no other form than "platform" commit, so the name was unnecessarily long. - also don't let nm_l3cfg_commit() return a boolean success. It's not useful, because commits can be triggered internally (by NML3Cfg itself) or by other users. Instead, there is the "post-commit" event, and anybody who cares about such a failure would need to handle it there.
| * | | l3cfg: add NM_L3_CONFIG_NOTIFY_TYPE_PLATFORM_CHANGE notificationThomas Haller2020-09-304-8/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our NML3Cfg instance is the IP configuration manage of one ifindex. Often users have an NML3Cfg instance at hand, but they still need to react to platform signals. Instead of requiring those users to register their own signal (which also gets notifications about uninteresting interfaces), re-emit the signal from NML3Cfg. We already had NM_L3_CONFIG_NOTIFY_TYPE_PLATFORM_CHANGE_ON_IDLE which does something similar, but collects multiple changes and emits them on an idle handler.
| * | | l3cfg: add NM_L3_CONFIG_MERGE_FLAGS_ONLY_FOR_ACD merge flagThomas Haller2020-09-302-9/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This flag indicates that the NML3ConfigData should be ignored for most purposes, except for doing ACD. Note that as users can call nm_l3cfg_add_config() multiple times for the same NML3ConfigData, a higher layer that enables ACD/IPv4LL can then decide to actually use the configuration, while some layers only have it hooked up to do ACD.