Yu Watanabe [Fri, 22 Oct 2021 13:32:45 +0000 (22:32 +0900)]
nspawn: ignore --suppress-sync=yes when seccomp is disabled
Follow-up for
4a4654e0241fbeabecb8587fd3520b6b39264b9c.
Fixes #21090.
Lennart Poettering [Fri, 22 Oct 2021 15:34:46 +0000 (17:34 +0200)]
nspawn: bump RLIMIT_NOFILE for nspawn payload similar to how host PID 1 does it for its payload
We try to pass containers roughly the same rlimits as the host gets from
the kernel. However, this means we'd set the RLIMIT_NOFILE to 4K. Which
is quite limiting though, and is something we actually departed from in
PID1: since
52d620757817bc0fa7de3ddbe43024544ced7ea0 we raise the limit
substantially for all userspace.
Given that nspawn is quite often invoked without proper PID1, let's raise the
limits for container payloads the same way as we do from the real PID1
to its service payloads.
Lennart Poettering [Fri, 22 Oct 2021 17:19:56 +0000 (19:19 +0200)]
update TODO
Jan Janssen [Wed, 20 Oct 2021 10:15:03 +0000 (12:15 +0200)]
sd-boot: Add keys to reboot into firmware interface
This is useful if the auto-firmware setting has been disabled. The
keys used here are based on what the majority of firmware employ in
the wild.
This also ensures there's a chance for the user to discover this in
case they were too slow during POST or simply used the wrong ones.
Lennart Poettering [Fri, 22 Oct 2021 17:12:21 +0000 (19:12 +0200)]
Merge pull request #21094 from poettering/userns-split
util-lib: split out userns allocation into new helper function
Lennart Poettering [Fri, 22 Oct 2021 17:12:01 +0000 (19:12 +0200)]
Merge pull request #21093 from poettering/homework-trivial-tweaks
homed trivial refactoring
Lennart Poettering [Fri, 22 Oct 2021 15:57:13 +0000 (17:57 +0200)]
update TODO
Lennart Poettering [Fri, 22 Oct 2021 15:41:17 +0000 (17:41 +0200)]
Merge pull request #21079 from poettering/fd-reopen-directory-tweak
fd-util: when re-opening a directory with fd_reopen() go via openat(……
Lennart Poettering [Fri, 22 Oct 2021 14:37:10 +0000 (16:37 +0200)]
process-util: move sync() out of freeze()
We are using this for creating userns namespaces, and we really
shouldn't try to sync there. Moreover the use of free() in shutdown code
doesn't need it anyway, since it just sync()ed right before anyway. Only
the third user of freeze() we have actually needs the syc(), hence do it
there and nowhere else.
Lennart Poettering [Wed, 20 Oct 2021 11:15:27 +0000 (13:15 +0200)]
namespace-util: introduce userns_acquire() as helper for allocating new unbound userns
This returns a namespace fd, and takes a uidmap/gidmap as string. This
is split out out mount-util.c's remount_idmap() logic, so that we can
allocate a userns independently.
Lennart Poettering [Wed, 20 Oct 2021 11:14:11 +0000 (13:14 +0200)]
basic: move freeze() from shared/exec-util.h to basic/process-util.h
That way we can use it in other code from basic/. It fits into both
headers equally well or badly, hence let's just move this one function.
Lennart Poettering [Fri, 22 Oct 2021 14:08:26 +0000 (16:08 +0200)]
homework: split home_unshare_and_mount() in two
Previously the call did two things, and the second thing was optional
(depending on first arg being NULL). Let's simplify this and just make
it two distinct functions, where one calls the other.
This should make things a bit more readable, given that we called a
function called "…and_mount()" which didn't actually mount...
No actual code changes, just some refactoring.
Lennart Poettering [Fri, 22 Oct 2021 13:51:49 +0000 (15:51 +0200)]
homework: use bit fields where we deal with lots of separate boolean flags
No actual code changes, just making a structure a bit shorter.
Lennart Poettering [Fri, 22 Oct 2021 14:01:42 +0000 (16:01 +0200)]
homework: add macro for "/run/systemd/user-home-mount"
We use this work dir a various places, and it's easy to mistype, hence
let the compiler detect this for us, and introduce a macro for it.
No code changes, just some search/replace.
Yu Watanabe [Fri, 22 Oct 2021 06:49:26 +0000 (15:49 +0900)]
network: dhcp6pd: fix the default value of subnet ID
The type of dhcp6_pd_subnet_id is int64_t.
Lennart Poettering [Thu, 21 Oct 2021 15:29:48 +0000 (17:29 +0200)]
varlink: disconnect varlink link in one more case
Previously we'd possibly see POLLHUP on a varlink link, and continue to
run epoll on it even though we have nothing to read nor write anymore.
Let's fix that, and once we know that there's nothing to write anymore
(or we saw a write error already) we'll disconnect after POLLHUP.
Fixes: #20062
Lennart Poettering [Fri, 22 Oct 2021 12:04:28 +0000 (14:04 +0200)]
test-fd-util: add test case for fd_reopen()
Lennart Poettering [Fri, 22 Oct 2021 12:03:46 +0000 (14:03 +0200)]
fd-util: tweak error handling in fd_reopen()
If we know that /proc/ works, then ENOENT when reopening an fd means the
fd didn't exist. Let's return the correct error code for that, i.e.
EBADF.
Lennart Poettering [Thu, 21 Oct 2021 08:21:03 +0000 (10:21 +0200)]
fd-util: when re-opening a directory with fd_reopen() go via openat(…, ".", …)
This adds a tiny shortcut to fd_reopen(): if we are about to reopen the
fd via O_DIRECTORY then we know it#s a directory and we might as well
reopen it via opening "." using the fd as "at fd" in openat().
This has the benefit that we don't need /proc/self/fd/ around for this
special case: fewer sources of errors.
Lennart Poettering [Fri, 22 Oct 2021 07:39:55 +0000 (09:39 +0200)]
test-networkd-address: fix clock type
The clock to use internally is clock_boottime_or_monotonic(), but the
test used CLOCK_MONOTONIC. After one system suspend the test thus likely
starts to fail.
Jan Janssen [Wed, 20 Oct 2021 08:11:45 +0000 (10:11 +0200)]
sd-boot: Be more precise about secure boot modes
Fixes: #11559
Yu Watanabe [Thu, 21 Oct 2021 19:48:40 +0000 (04:48 +0900)]
Merge pull request #21081 from mrc0mmand/even-more-coverage-tweaks
test: collect even more coverage
Jonas Dreßler [Thu, 21 Oct 2021 12:47:35 +0000 (14:47 +0200)]
hwdb: Allow USB autosuspend for MS Surface Pro (2017) Type Cover
The Surface Type Covers are known to support USB autosuspend just fine
(and it's also enabled by default on Windows), so enable it in hwdb.
Yu Watanabe [Thu, 21 Oct 2021 16:46:55 +0000 (01:46 +0900)]
Merge pull request #21072 from yuwata/network-address-lifetime
network: address: use usec_t for handling lifetime
Yu Watanabe [Thu, 21 Oct 2021 16:46:15 +0000 (01:46 +0900)]
Merge pull request #21050 from yuwata/network-bpf-cleanups
libsystemd-network: cleanup BPF code
Frantisek Sumsal [Thu, 21 Oct 2021 16:34:21 +0000 (18:34 +0200)]
test: make the coverage check safer for non-compiled builds
Frantisek Sumsal [Thu, 21 Oct 2021 16:12:06 +0000 (18:12 +0200)]
test: collect the coverage _before_ unmounting the rootfs
d'oh!
Frantisek Sumsal [Thu, 21 Oct 2021 16:06:36 +0000 (18:06 +0200)]
test: loosen sandbox restrictions for integration tests as well
Otherwise we miss quite a lot of coverage (mainly from logind,
hostnamed, networkd, and possibly others), since they can't write their
reports with `ProtectSystem=strict`.
Frantisek Sumsal [Thu, 21 Oct 2021 15:34:43 +0000 (17:34 +0200)]
test: loosen certain sandbox restrictions when collecting coverage
With `ProtectSystem=strict` gcov is unable to write the *.gcda files
with collected coverage. Let's add a yet another switch to make such
restriction less strict to make gcov happy.
This addresses following errors:
```
...
systemd-networkd[272469]: profiling:/systemd-meson-build/src/shared/libsystemd-shared-249.a.p/binfmt-util.c.gcda:Cannot open
systemd-networkd[272469]: profiling:/systemd-meson-build/src/shared/libsystemd-shared-249.a.p/base-filesystem.c.gcda:Cannot open
systemd-networkd[272469]: profiling:/systemd-meson-build/src/shared/libsystemd-shared-249.a.p/barrier.c.gcda:Cannot open
systemd-networkd[272469]: profiling:/systemd-meson-build/src/shared/libsystemd-shared-249.a.p/ask-password-api.c.gcda:Cannot open
systemd-networkd[272469]: profiling:/systemd-meson-build/src/shared/libsystemd-shared-249.a.p/apparmor-util.c.gcda:Cannot open
systemd-networkd[272469]: profiling:/systemd-meson-build/src/shared/libsystemd-shared-249.a.p/acpi-fpdt.c.gcda:Cannot open
...
```
Frantisek Sumsal [Thu, 21 Oct 2021 13:59:57 +0000 (15:59 +0200)]
test: wait a bit for the given PID to die if it's still alive
When playing around with the coverage-enabled build I kept hitting
an issue where dnsmasq failed to start because the previous instance was
still shutting down. This should, hopefully, help to mitigate that.
Yu Watanabe [Tue, 19 Oct 2021 11:32:40 +0000 (20:32 +0900)]
icmp6: shorten code a bit
Yu Watanabe [Tue, 19 Oct 2021 11:28:57 +0000 (20:28 +0900)]
dhcp: shorten BPF code a bit
- replace `A = k` and `X = A` with `X = k`,
- replace `A ^= X` and `A == 0` with `A == X`.
- use UINT32_MAX when accept a packet
Yu Watanabe [Tue, 19 Oct 2021 11:24:09 +0000 (20:24 +0900)]
dhcp: rebreak function arguments
Yu Watanabe [Tue, 19 Oct 2021 11:23:47 +0000 (20:23 +0900)]
dhcp: fix assertions
Yu Watanabe [Tue, 19 Oct 2021 11:22:56 +0000 (20:22 +0900)]
dhcp: shorten code a bit
Yu Watanabe [Tue, 19 Oct 2021 11:16:34 +0000 (20:16 +0900)]
lldp: shorten code a bit
Yu Watanabe [Tue, 19 Oct 2021 11:05:11 +0000 (20:05 +0900)]
arp-util: shorten BPF code a bit
- replace `A = k` and `X = A` with `X = k`,
- replace `A ^= X` and `A == 0` with `A == X`.
- use UINT32_MAX when accept a packet
Yu Watanabe [Wed, 20 Oct 2021 17:21:59 +0000 (02:21 +0900)]
network: address: use usec_t for handling lifetime
This drops stuct ifa_cacheinfo from Address, and store lifetime with
usec_t.
Why? Now, all requests of address configurations are once stored in
the request queue, and will be processed when it is ready. So, the
timestamp value passed to the kernel must be evaluated on configure.
This also fixes the following two issues.
- Time values in struct ifa_cacheinfo are stored in uint32_t.
So, the validity check of the address configured by NDisc may fail on
long running systems.
- If a system uses DHCPv6PD, when an interface may appear or be
reconfigured later, then the lifetime value may be inappropriate.
We need to adjust the lifetime with the current time and the timestamp
of the lease.
Yu Watanabe [Thu, 21 Oct 2021 11:50:12 +0000 (20:50 +0900)]
network: ndisc: rename valid_until -> lifetime_usec
Yu Watanabe [Thu, 21 Oct 2021 11:43:57 +0000 (20:43 +0900)]
network: ndisc: add missing lifetime check
Yu Watanabe [Wed, 20 Oct 2021 15:22:49 +0000 (00:22 +0900)]
network: route: rename lifetime -> lifetime_usec
Zbigniew Jędrzejewski-Szmek [Thu, 21 Oct 2021 06:33:08 +0000 (08:33 +0200)]
Merge pull request #21065 from keszybz/efi-warnings
Clean up unused variables in efi code
Yu Watanabe [Wed, 20 Oct 2021 19:26:56 +0000 (04:26 +0900)]
network: drop unnecessary header inclusion
Luca Boccassi [Wed, 20 Oct 2021 21:10:56 +0000 (22:10 +0100)]
CI: disable code coverage in GH Action
It is now ran on the nightly CentOS build, so that it can cover
integration tests too, and not just unit tests. It's nightly as
it considerably increases the integration test runtime, so it's
not appropriate for all PRs.
Frantisek Sumsal [Wed, 20 Oct 2021 17:43:34 +0000 (19:43 +0200)]
test: don't install test-network-generator-conversion.sh w/o networkd
otherwise TEST-02 will fail:
```
=== Failed test log ===
--- test-network-generator-conversion.sh begin ---
+ [[ -n '' ]]
+ [[ -x /usr/lib/systemd/systemd-network-generator ]]
+ [[ -x /lib/systemd/systemd-network-generator ]]
+ exit 1
--- test-network-generator-conversion.sh end ---
```
Before:
```
$ meson build -Dnetworkd=false -Dinstall-tests=true
$ ninja -C build
$ DESTDIR=$PWD/test-install ninja -C build install
$ find test-install/ -name test-network-generator-conversion.sh
test-install/usr/lib/systemd/tests/test-network-generator-conversion.sh
```
After:
```
$ find test-install/ -name test-network-generator-conversion.sh
<no output>
```
Frantisek Sumsal [Wed, 20 Oct 2021 11:00:37 +0000 (13:00 +0200)]
test: collect coverage in a couple more codepaths
Otherwise we'd miss coverage from TEST-{02,24,61}, since they don't go
through the "standard" `check_result_common` hook.
Follow-up to
7bf20e48bd7d641a39a14a7feb749b7e8b0fc0f6.
Yu Watanabe [Wed, 20 Oct 2021 13:44:35 +0000 (22:44 +0900)]
zsh-completion: nspawn: add --suppress-sync option
Follow-up for
4a4654e0241fbeabecb8587fd3520b6b39264b9c.
Yu Watanabe [Wed, 20 Oct 2021 13:42:43 +0000 (22:42 +0900)]
Merge pull request #21051 from poettering/nspawn-no-sync
nspawn: add --suppress-sync=yes mode for turning sync() and friends i…
Luca Boccassi [Wed, 20 Oct 2021 13:38:03 +0000 (14:38 +0100)]
Merge pull request #21055 from yuwata/network-dhcp6-pd-route-lifetime-metric
network: dhcp6pd: set lifetime and route metric
Yu Watanabe [Wed, 20 Oct 2021 13:21:30 +0000 (22:21 +0900)]
Merge pull request #21061 from poettering/direct-io-loopback-tweaks
tweaks to O_DIRECT loop work
Dimitri Papadopoulos [Wed, 20 Oct 2021 07:38:57 +0000 (09:38 +0200)]
Typos found by codespell
Zbigniew Jędrzejewski-Szmek [Wed, 20 Oct 2021 11:57:38 +0000 (13:57 +0200)]
efi: check input parameter
clang complained about an unused variable. We cast the buffer to
struct boot_params, so let's check that it's at least this long.
Zbigniew Jędrzejewski-Szmek [Wed, 20 Oct 2021 11:53:27 +0000 (13:53 +0200)]
efi: drop two unused variables
It seems the code was added in
2553a5482c77980429565d14662f309e385bd472 and
those two were never used for anything.
Lennart Poettering [Tue, 19 Oct 2021 12:56:49 +0000 (14:56 +0200)]
nspawn: add --suppress-sync=yes mode for turning sync() and friends into NOPs via seccomp
This is supposed to be used by package/image builders such as mkosi to
speed up building, since it allows us to suppress sync() inside a
container.
This does what Debian's eatmydata tool does, but for a container, and
via seccomp (instead of LD_PRELOAD).
Lennart Poettering [Wed, 20 Oct 2021 07:57:16 +0000 (09:57 +0200)]
loop-util: call loop_device_make_internal() at the right place
The whole reason loop_device_make_internal() exists (as opposed to just
loop_device_make()) is to avoid mangling the loop flags value/call
getenv twice. Hence let's actually call it when we already mangled the
flags value.
Lennart Poettering [Wed, 20 Oct 2021 07:56:20 +0000 (09:56 +0200)]
loop-util: add debug logging about O_RDWR vs. O_RDONLY + O_DIRECT mode
Once we managed to open the file let's log what we wanted and what we
got.
Lennart Poettering [Wed, 20 Oct 2021 07:55:33 +0000 (09:55 +0200)]
loop-util: minor coding style updates
As suggested here: https://github.com/systemd/systemd/pull/21044#pullrequestreview-
783530343
Yu Watanabe [Wed, 20 Oct 2021 04:30:32 +0000 (13:30 +0900)]
Merge pull request #21041 from yuwata/network-bpf-neighbor
network: introduce BPF to reject netlink messages about non-static neighbor
Yu Watanabe [Wed, 20 Oct 2021 04:29:45 +0000 (13:29 +0900)]
Merge pull request #21056 from yuwata/test-network-cleanups
test-network: several cleanups related to dnsmasq
Yu Watanabe [Thu, 14 Oct 2021 17:00:27 +0000 (02:00 +0900)]
test-network: cleanup dnsmasq related file on setup
Just for safety.
Yu Watanabe [Thu, 14 Oct 2021 16:54:11 +0000 (01:54 +0900)]
test-network: drop pid_file argument from stop_dnsmasq()
Yu Watanabe [Thu, 14 Oct 2021 16:36:08 +0000 (01:36 +0900)]
test-network: use constant variables in dnsmasq command
Yu Watanabe [Thu, 14 Oct 2021 20:57:30 +0000 (05:57 +0900)]
network: dhcp6pd: set default metric 256 for delegated prefix
When Assign= in [DHCPv6PrefixDelegation] is enabled, then the kernel
will create the prefix route for the assigned address with metric 256.
When Assign= is disabled, then the kernel will create the route with
metric 1024.
For the default value, we should choose a smaller value (higher priority)
than 1024, as the unreachable routes for delegated prefix will be
configured with 1024.
Yu Watanabe [Thu, 14 Oct 2021 21:00:22 +0000 (06:00 +0900)]
network: dhcp6: explicitly specify metric for unreachable route
For static IPv6 routes without metric is specified, then we use 1024.
But such an adjustment is not performed to dynamic routes. So, let's
specify the metric explicitly.
Otherwise, configured routes will be handled as foreign.
Yu Watanabe [Thu, 14 Oct 2021 19:21:21 +0000 (04:21 +0900)]
network: dhcp6pd: set lifetime to routes for assigned prefixes
Note that the kernel (at least 5.14.11) seems not to support lifetime
for IPv6 unreachable routes. The lifetime for routes of the type will be
handled by sd-event's timer event source.
So, we cannot confirm the lifetime with 'ip route' command.
Yu Watanabe [Thu, 14 Oct 2021 19:19:59 +0000 (04:19 +0900)]
sd-dhcp6-client: introduce sd_dhcp6_lease_get_timestamp()
Yu Watanabe [Tue, 19 Oct 2021 16:48:44 +0000 (01:48 +0900)]
Merge pull request #21035 from yuwata/network-route-fix-lifetime
network: route: drop kernel version check
Lennart Poettering [Tue, 19 Oct 2021 16:42:25 +0000 (18:42 +0200)]
Merge pull request #21044 from poettering/loopback-direct-io
loop-util: enable LO_FLAGS_DIRECT_IO by default on loopback devices
Daan De Meyer [Tue, 19 Oct 2021 13:54:07 +0000 (14:54 +0100)]
CI: disable opensuse mkosi CI
Until https://github.com/systemd/systemd/issues/21019 is fixed,
there's no point in running the opensuse CI job so let's disable
it for now.
Lennart Poettering [Mon, 18 Oct 2021 20:34:54 +0000 (22:34 +0200)]
loop-util: work around cache invalidation bug in older kernels
Inspired by the discussions in #21003.
Inspired in particular by what Android apexd does:
https://android.googlesource.com/platform/system/apex/+/refs/heads/master/apexd/apexd_loop.cpp
Lennart Poettering [Mon, 18 Oct 2021 15:23:30 +0000 (17:23 +0200)]
loop-util: enable LO_FLAGS_DIRECT_IO by default on loopback devices
Fixes: #21003
Yu Watanabe [Mon, 18 Oct 2021 18:55:24 +0000 (03:55 +0900)]
network: introduce BPF to reject netlink messages about non-static neighbor
Fixes #21031.
Yu Watanabe [Mon, 18 Oct 2021 17:41:38 +0000 (02:41 +0900)]
sd-netlink: introduce sd_netlink_attach_filter()
Yu Watanabe [Fri, 15 Oct 2021 01:07:57 +0000 (10:07 +0900)]
network: route: drop kernel version check for route expiration
Even in newer kernel version, it seems that some route type does not
support expiration, e.g. IPv4 route or unreachable route. Let's use
timer event source for such routes.
Lennart Poettering [Tue, 19 Oct 2021 08:23:12 +0000 (10:23 +0200)]
Merge pull request #20905 from medhefgo/boot-cleanup
sd-boot: Code cleanups
Zbigniew Jędrzejewski-Szmek [Tue, 19 Oct 2021 07:53:31 +0000 (09:53 +0200)]
Merge pull request #20988 from DaanDeMeyer/rotate-reason
journal: Improve rotation logging
Zbigniew Jędrzejewski-Szmek [Tue, 19 Oct 2021 07:24:38 +0000 (09:24 +0200)]
Merge pull request #21037 from yuwata/network-dhcp6-pd-simplify-distribute
network: dhcp6-pd: simplify dhcp6_pd_prefix_distribute()
Zbigniew Jędrzejewski-Szmek [Tue, 19 Oct 2021 07:22:32 +0000 (09:22 +0200)]
Merge pull request #21036 from yuwata/network-dhcp6-pd-manage-prefix-with-hashmap
network: dhcp6-pd: manage prefix with hashmap
Vincent Bernat [Mon, 18 Oct 2021 18:58:43 +0000 (20:58 +0200)]
utmp: remove /dev from line
utmp(5) says `ut_line` is the device name minus the leading "/dev/". Therefore,
remove it. Without that, when using UtmpMode=user, we get `/dev/tty` in the
output of `last`/`w`.
Zbigniew Jędrzejewski-Szmek [Tue, 19 Oct 2021 07:16:09 +0000 (09:16 +0200)]
Merge pull request #21038 from yuwata/network-dhcp6-pd-fix-address-check
network: dhcp6-pd: fix address check
Yu Watanabe [Tue, 19 Oct 2021 03:58:06 +0000 (12:58 +0900)]
network: neighbor: fix log message
Alexander Kanavin [Mon, 18 Oct 2021 08:13:07 +0000 (10:13 +0200)]
meson: use partial_dependency() to get include directory
Getting the variable directly from pkg-config (without
adding the sysroot prefix) is prone to host contamination
when building in sysroots as the compiler starts looking for the
headers on the host in addition to the sysroot.
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Yu Watanabe [Mon, 18 Oct 2021 16:49:53 +0000 (01:49 +0900)]
tree-wide: use AF_NETLINK instead of PF_NETLINK
Lennart Poettering [Mon, 18 Oct 2021 20:46:16 +0000 (22:46 +0200)]
Merge pull request #21034 from poettering/homed-password-cache-tweaks
homed: minor tweaks to the PasswordCache logic
Lennart Poettering [Mon, 18 Oct 2021 20:45:44 +0000 (22:45 +0200)]
Merge pull request #21028 from poettering/watchdog-fixlets
pid1: various small watchdog tweaks and fixes
Lennart Poettering [Mon, 18 Oct 2021 11:59:29 +0000 (13:59 +0200)]
homework: move allocation/destruction into outer/generic scope
Previously in most cases we'd allocate the HomeSetup context object
in generic code in homework.c. But for some cases we allocated them
instead inside the specific code in homework-{cifs,directory,luks}.c
Let's clean that up, and systematically allocate it in the outer
"entrypoint" calls in homework.c instead of the inner ones.
This doesn't change much in behaviour (i.e. it just means when something
fails we'll now clean it up one stack frame further up). But it will
allow is to more easily work with the context objects, since we'll have
them around in all stack frames.
Lennart Poettering [Thu, 14 Oct 2021 13:43:08 +0000 (15:43 +0200)]
homework: unify code that opens the backing image file in open_image_file()
Also, reuse an already opened image file if we have one.
Yu Watanabe [Fri, 15 Oct 2021 01:06:25 +0000 (10:06 +0900)]
network: route: fix possible overflow in conversion usec_t -> uint32_t
Yu Watanabe [Wed, 13 Oct 2021 18:22:30 +0000 (03:22 +0900)]
network: dhcp6: use IPv6 specific functions
Yu Watanabe [Wed, 13 Oct 2021 18:10:31 +0000 (03:10 +0900)]
network: dhcp6: manage assigned downstream prefixes by using Hashmap
When a system has thousands of downstream interfaces, previously the
total cost of finding free subnet ID was O(n^2), where n is the number
of downstream interfaces.
This makes assigned prefixes are managed by Manager with Hashmap. So,
the cost becomes O(n log n).
Yu Watanabe [Wed, 13 Oct 2021 17:57:10 +0000 (02:57 +0900)]
network: dhcp6: shorten code a bit
Yu Watanabe [Wed, 13 Oct 2021 17:54:20 +0000 (02:54 +0900)]
network: dhcp6: always assign prefix through dhcp6_pd_assign_prefix()
For uplink interface, we request Assign= is enabled in the above.
So, we can always use dhcp6_pd_assign_prefix().
Just a minor simplification for later commits.
Yu Watanabe [Thu, 14 Oct 2021 20:37:18 +0000 (05:37 +0900)]
network: dhcp6pd: check if address is ready only when Assign=yes
Yu Watanabe [Thu, 14 Oct 2021 17:53:52 +0000 (02:53 +0900)]
network: add missing DHCPv6PD address check
Daan De Meyer [Tue, 12 Oct 2021 10:20:59 +0000 (11:20 +0100)]
journal: Expand rotate log messages in journald
Make sure we always log when we rotate journals and always do so at
least at INFO log level. Doing so we make sure there's always a clear
reason available explaining why we rotated a journal.
Daan De Meyer [Tue, 12 Oct 2021 10:03:44 +0000 (11:03 +0100)]
journal: Add two more log messages to journal_file_rotate_suggested()
This ensures every reason for rotation has an associated log message.
Daan De Meyer [Mon, 18 Oct 2021 12:29:15 +0000 (14:29 +0200)]
docs: Fix value for "processId" in HACKING doc
This needs to be pickRemoteProcess to make sure the UI shows
the PIDs of processes in the mkosi container instead of processes
on the host system.
Lennart Poettering [Mon, 18 Oct 2021 13:31:10 +0000 (15:31 +0200)]
homework: mae sure PasswordCache is really optional
It was supposed to be optional (i.e. there's a reason why we never
assert()ed on it), and in many codepaths it is, let's make sure it is
everywhere.
Lennart Poettering [Mon, 18 Oct 2021 12:58:36 +0000 (14:58 +0200)]
homework: make PasswordCache const wherever we can
Daan De Meyer [Tue, 12 Oct 2021 10:00:00 +0000 (11:00 +0100)]
journal: Add log level argument to journal_file_rotate_suggested()
When journald is rotating a file, we'd like to log the reason at
LOG_INFO or higher instead of LOG_DEBUG. For journalctl --header,
logging the reason at a level higher than LOG_DEBUG doesn't really
make sense. To accomodate both use cases, make the log level used
by journal_file_rotate_suggested() configurable.