Lennart Poettering [Tue, 7 Nov 2023 17:19:25 +0000 (18:19 +0100)]
util: add capsule-util.[ch] with helpers for capsules
For now, there's only a routine for validating capsule names. More will
be added later.
Lennart Poettering [Wed, 25 Oct 2023 20:16:52 +0000 (22:16 +0200)]
units: add systemd-capsule@.service
Lennart Poettering [Tue, 7 Nov 2023 15:37:39 +0000 (16:37 +0100)]
sd-bus: add ability to connect to bus as a specific user
Lennart Poettering [Thu, 14 Mar 2024 10:03:59 +0000 (11:03 +0100)]
Merge pull request #31770 from poettering/linkat-replace
introduce linkat_replace() helper, and port various things over to it
Yu Watanabe [Thu, 14 Mar 2024 08:40:24 +0000 (17:40 +0900)]
Yu Watanabe [Thu, 14 Mar 2024 08:39:09 +0000 (17:39 +0900)]
Yu Watanabe [Thu, 14 Mar 2024 08:37:48 +0000 (17:37 +0900)]
Lennart Poettering [Wed, 13 Mar 2024 11:45:22 +0000 (12:45 +0100)]
creds-util: port make_credential_host_secret() over to link_tmpfile_at()
Let's simplify things by just reusing the primitives we already have.
Lennart Poettering [Wed, 13 Mar 2024 11:43:43 +0000 (12:43 +0100)]
tmpfile-util: port link_tmpfile_at() over to linkat_replace()
Lennart Poettering [Tue, 12 Dec 2023 10:27:55 +0000 (11:27 +0100)]
fs-util: add new helper linkat_replace()
Lennart Poettering [Wed, 13 Mar 2024 16:48:04 +0000 (17:48 +0100)]
fs-util: move link_fd() from tmpfile-util.c into generic fs-util.c
It's a generically useful call, let's move it so that we can use it at
more places.
Lennart Poettering [Wed, 13 Mar 2024 22:17:11 +0000 (23:17 +0100)]
path-util: add helper that checks if a path definitely refers to a dir
Zbigniew Jędrzejewski-Szmek [Thu, 14 Mar 2024 07:23:04 +0000 (08:23 +0100)]
Merge pull request #31771 from keszybz/meson-make-partial-builds-great-again
Meson make partial builds work again
Luca Boccassi [Wed, 13 Mar 2024 23:37:50 +0000 (23:37 +0000)]
Merge pull request #31761 from CodethinkLabs/vmspawn/bug_fixes
vmspawn: fix two minor bugs
Mike Yuan [Tue, 12 Mar 2024 08:14:00 +0000 (16:14 +0800)]
core/cgroup: introduce MemoryZSwapWriteback setting
Added in
https://github.com/torvalds/linux/commit/
501a06fe8e4c185bbda371b8cedbdf1b23a633d8
Daan De Meyer [Wed, 13 Mar 2024 23:16:43 +0000 (00:16 +0100)]
Merge pull request #31758 from DaanDeMeyer/kvm
mkosi: Enable KVM
Luca Boccassi [Wed, 13 Mar 2024 23:06:50 +0000 (23:06 +0000)]
Merge pull request #31584 from yuwata/sd-ndisc-option-parser-cleanups
sd-ndisc: rewrite option parser
Daan De Meyer [Wed, 13 Mar 2024 13:18:03 +0000 (14:18 +0100)]
mkosi: Enable KVM
Since https://github.blog/2024-01-17-github-hosted-runners-double-the-power-for-open-source/,
it seems that KVM is supported on GA runners, so let's explicitly
enable it to make sure it is used.
We update mkosi to latest and set QemuFirmware=uefi to disable
secure boot which crashes qemu until https://bugs.launchpad.net/ubuntu/+source/linux/+bug/
2038777
is fixed.
Daan De Meyer [Wed, 13 Mar 2024 19:50:06 +0000 (20:50 +0100)]
mkosi: Allow booting without secure boot
Don't fail if SecureBoot is not enabled. Instead, only execute
the secure boot related checks if secure boot is actually enabled.
Daan De Meyer [Wed, 13 Mar 2024 16:59:51 +0000 (17:59 +0100)]
boot: Only use io.systemd.boot.kernel-cmdline-extra for type 1 images
Otherwise the cmdline is duplicated for UKIs.
dependabot[bot] [Wed, 13 Mar 2024 19:16:26 +0000 (19:16 +0000)]
build(deps): bump github/codeql-action from 3.24.6 to 3.24.7
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.6 to 3.24.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/
8a470fddafa5cbb6266ee11b37ef4d8aae19c571...
3ab4101902695724f9365a384f86c1074d94e18c)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Wed, 13 Mar 2024 16:48:35 +0000 (16:48 +0000)]
build(deps): bump pkg/debian from `
49132a8` to `
5451923`
Bumps pkg/debian from `
49132a8` to `
5451923`.
---
updated-dependencies:
- dependency-name: pkg/debian
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Wed, 13 Mar 2024 16:48:43 +0000 (16:48 +0000)]
build(deps): bump actions/checkout from 4.1.1 to 4.1.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/
b4ffde65f46336ab88eb53be808477a3936bae11...
9bb56186c3b09b4f86b1c65136769dd318469633)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Wed, 13 Mar 2024 16:48:38 +0000 (16:48 +0000)]
build(deps): bump meson from 1.3.2 to 1.4.0 in /.github/workflows
Bumps [meson](https://github.com/mesonbuild/meson) from 1.3.2 to 1.4.0.
- [Release notes](https://github.com/mesonbuild/meson/releases)
- [Commits](https://github.com/mesonbuild/meson/compare/1.3.2...1.4.0)
---
updated-dependencies:
- dependency-name: meson
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] [Wed, 13 Mar 2024 16:48:33 +0000 (16:48 +0000)]
build(deps): bump softprops/action-gh-release from 1 to 2
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/
de2c0eb89ae2a093876385947365aca7b0e5f844...
9d7c94cfd0a1f3ed45544c887983e9fa900f0564)
---
updated-dependencies:
- dependency-name: softprops/action-gh-release
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Zbigniew Jędrzejewski-Szmek [Wed, 13 Mar 2024 17:33:59 +0000 (18:33 +0100)]
meson: always use vcs_tag
The branch with configure_file() was broken: meson doesn't know that
this file is a prerequisite for other targets, so partial rebuilds were broken.
Easy reproducer:
git mv .git{,.no}
touch meson build && ninja -C build src/basic/libbasic.a
rm build/version.h
ninja -C build src/basic/libbasic.a
Using vcs_tag() also in that case makes meson always build the file.
(Combined with the issue fixed in previous commit, I was encountering
failed builds quite often.)
Fixes
3f6ce3d4f04de0f765bb3bde0e400d0823829486.
Zbigniew Jędrzejewski-Szmek [Wed, 13 Mar 2024 17:17:10 +0000 (18:17 +0100)]
meson: .git can also be a file
With git-worktree, .git is just a file that specifies where
the parent git directory is. All the git information is available
in a git worktree, so it should be treated the same as a checkout
with a .git directory.
Daan De Meyer [Wed, 13 Mar 2024 16:48:00 +0000 (17:48 +0100)]
Merge pull request #31673 from DaanDeMeyer/mkosi
mkosi: Introduce packaging sources as submodules
Sam Leonard [Wed, 13 Mar 2024 15:20:40 +0000 (15:20 +0000)]
vmspawn: fix FD passing logic
Sam Leonard [Wed, 13 Mar 2024 15:19:07 +0000 (15:19 +0000)]
vmspawn: prefix extra kernel-cmdline-extra with -smbios
Daan De Meyer [Wed, 13 Mar 2024 09:26:52 +0000 (10:26 +0100)]
units: Bump various oneshot unit timeouts to 90s
In mkosi, we've been having CI failures caused by
systemd-machine-id-commit.service timing out. Let's bump the timeout
for it and systemd-rfkill.service to 90s which we also use for other
oneshot services to avoid transient failures on slower systems.
Evgeny Vereshchagin [Wed, 13 Mar 2024 11:55:11 +0000 (11:55 +0000)]
fuzz: make sure DHCP client leases are loaded successfully
Now that
fa3357b9e8d9d7a486902d0b6d4b4015fc10aac0 is merged the fuzz
target should no longer crash there.
Daan De Meyer [Wed, 13 Mar 2024 12:39:41 +0000 (13:39 +0100)]
mkosi: Drop leftover mkosi.kernel.config
The rest of the kernel build infra for mkosi was already removed a
long time ago, but we forgot to remove this config file. Let's drop
it now as well;
sharad3001 [Wed, 13 Mar 2024 13:25:22 +0000 (18:55 +0530)]
udev: add assert for EVENT_RESULT_EXIT_STATUS_BASE (#31710)
EVENT_RESULT_EXIT_STATUS_BASE and EVENT_RESULT_SUCCESS has the same value.
Code updated to add assert statement for EVENT_RESULT_EXIT_STATUS_BASE.
Yu Watanabe [Wed, 13 Mar 2024 01:29:53 +0000 (10:29 +0900)]
network/varlink: return StorageReadOnly error
Addresses https://github.com/systemd/systemd/pull/30021#discussion_r1521595855.
AKHIL KUMAR [Wed, 13 Mar 2024 06:32:59 +0000 (12:02 +0530)]
networkctl.c : call 'assert_not_reached' where appropriate
networkctl.c : call 'assert_not_reached' where appropriate
Mike Yuan [Wed, 13 Mar 2024 11:04:54 +0000 (19:04 +0800)]
networkd-manager: drop spurious return
Follow-up for
f90eb086270f0aea8efcbff5a5e4c338d178cfd4
Mike Yuan [Wed, 13 Mar 2024 12:40:07 +0000 (20:40 +0800)]
Merge pull request #31746 from yuwata/network-unit-hide-boot-and-efi
unit: do not trigger automount for /boot and/or /efi
Luca Boccassi [Wed, 13 Mar 2024 11:27:35 +0000 (11:27 +0000)]
Merge pull request #31729 from aafeijoo-suse/logind-cleanups
logind: coding style cleanups
Lennart Poettering [Wed, 13 Mar 2024 11:11:27 +0000 (12:11 +0100)]
Merge pull request #31733 from poettering/polkit-more-flags
add two more flags to polkit client wrapper
Daan De Meyer [Fri, 8 Mar 2024 10:33:25 +0000 (11:33 +0100)]
mkosi: Introduce packaging sources as submodules
By always cloning the latest branch commit, we can't bisect properly
using mkosi as when bisecting wildly different packaging sources will
be used compared to when the commit was merged. By using submodules, we
track individual commits which means when bisecting the same packaging
sources will be used.
We use git submodules as dependabot has support for automatically making
PRs to update git submodules. This commit also includes the necessary
dependabot configuration to enable this.
We make ubuntu/debian use the same submodule instead of adding the debian
packaging sources twice by introducing a new $PKG_SUBDIR environment variable
and using it instead of $DISTRIBUTION.
Daan De Meyer [Sat, 9 Mar 2024 13:38:00 +0000 (14:38 +0100)]
mkosi: Remove some leftover shell debugging
Daan De Meyer [Fri, 8 Mar 2024 11:57:31 +0000 (12:57 +0100)]
mkosi: Use same pkg/ subdirectory for debian and ubuntu
Instead of cloning the same repository twice, let's make sure we
use the same directory for both debian/ubuntu.
Lennart Poettering [Wed, 13 Mar 2024 10:21:25 +0000 (11:21 +0100)]
update TODO
Lennart Poettering [Wed, 13 Mar 2024 10:17:02 +0000 (11:17 +0100)]
update TODO
Lennart Poettering [Wed, 28 Feb 2024 20:56:55 +0000 (21:56 +0100)]
polkit: add another flag that controls how to treat the PK absent case
Typically if PK is not present we want to treat this as "denied". But
sometimes it makes sense to treat this case as "allowed".
In particular the combination POLKIT_ALWAYS_QUERY and
POLKIT_DEFAULT_ALLOW makes a lot of sense: it means we can enable PK
logic for actions where we so far bypassed the checks for root. With the
new combination we can have a default policy of allowing some operation
but still provide an effective hook to disable it.
Also add some debug logging about PK operations and results as they are ongoing.
Lennart Poettering [Wed, 28 Feb 2024 20:31:53 +0000 (21:31 +0100)]
polkit: add new POLKIT_ALWAYS_QUERY flag
When this flag is set we'll disable the local shortcut that skips polkit
checks for clients that are privileged, and assumes they are
authenticated.
Or in other words: if this flag is set, we'll query PK not matter what,
regardless if it's root we talk about or any other user.
Lennart Poettering [Wed, 28 Feb 2024 16:06:11 +0000 (17:06 +0100)]
polkit: allow checking if we already acquired some action
This adds a new helper that basically just wraps
async_polkit_query_have_action() and allows calling this without
actually triggering a PK authentication operation: it just checks if we
aleady have acquired an action or not.
Lennart Poettering [Wed, 13 Mar 2024 09:37:15 +0000 (10:37 +0100)]
Merge pull request #31731 from poettering/stat-is-set
stat-util: add explicit helpers for checking if stat/statx is initialized
SidhuRupinder [Wed, 13 Mar 2024 05:16:46 +0000 (10:46 +0530)]
local-addresses: call 'assert_not_reached' where appropriate (#31728)
Added code for calling the 'assert_not_reached' function as the value of the 'family' parameter must be either 'AF_INET' or 'AF_INET6'.
Mike Yuan [Wed, 13 Mar 2024 05:10:34 +0000 (13:10 +0800)]
Merge pull request #31727 from YHNdnzj/homed-followup
data-fd-util: some cleanups
Yu Watanabe [Thu, 29 Feb 2024 04:06:31 +0000 (13:06 +0900)]
sd-ndisc-router: adjust function names and type of returned value
- prefix length and preference should be fit in uint8_t, and actually
the kernel and networkd uses uint8_t to store them.
- captive portal is now stored as a NUL-terminated string. Hence, it
is not necessary to also provide its length.
Yu Watanabe [Thu, 29 Feb 2024 03:45:51 +0000 (12:45 +0900)]
sd-ndisc-router: introduce sd_ndisc_router_get_sender_mac()
The Router Advertisement option can take the MAC address of the sender.
Let's introduce a function to get it from the parsed options.
Yu Watanabe [Thu, 29 Feb 2024 03:43:03 +0000 (12:43 +0900)]
ndisc-option: drop unused function
Yu Watanabe [Thu, 29 Feb 2024 03:42:16 +0000 (12:42 +0900)]
sd-ndisc-router: use ndisc_parse_options() and friends to parse Router Advertisement
Yu Watanabe [Thu, 29 Feb 2024 03:31:58 +0000 (12:31 +0900)]
ndisc-option: introduce generic NDisc option parser
It is not used in this commit, but will be used for parsing NDisc
options in Router Advertisement message and friends.
The parser does mostly equivalent to what currently we do in
sd-ndisc-router.c. Several notable differences are:
- also perse source and target link-layer address,
- refuse multiple captive portals,
- check if the captive portal is in safe characters, as previously we
checked that in networkd-ndisc.c,
- dedup prefixes, routes, and pref64,
- limit the total number of options, for safety.
Yu Watanabe [Fri, 8 Mar 2024 15:08:27 +0000 (00:08 +0900)]
sd-ndisc: rename ndisc-protocol.[ch] -> ndisc-option.[ch]
Yu Watanabe [Wed, 13 Mar 2024 01:15:23 +0000 (10:15 +0900)]
unit: do not trigger automount for /boot and/or /efi
ProtectSystem=full remounts /boot and/or /efi read-only, but that
may trigger automount for the paths and delay the service being started.
===
systemd[1]: boot.automount: Got automount request for /boot, triggered by 720 ((networkd))
===
The service does not need to access the paths, so let's hide them.
Follow-up for
f90eb086270f0aea8efcbff5a5e4c338d178cfd4.
Fixes #31742.
Yu Watanabe [Wed, 13 Mar 2024 01:14:48 +0000 (10:14 +0900)]
unit: sort option
Luca Boccassi [Wed, 13 Mar 2024 00:45:03 +0000 (00:45 +0000)]
Merge pull request #31735 from mrc0mmand/test-runner
test: split logs from each test into separate files if requested
Lars Ellenberg [Wed, 7 Feb 2024 12:12:50 +0000 (13:12 +0100)]
fs-utils: new wrapper fd_reopen_propagate_append_and_position()
We may want to propagate O_APPEND, or (try to) keep the current file position,
even if we use fd_reopen() to re-initialize (and "unshare") other file
description status.
For now, used only with --pty to keep/propagate O_APPEND (and/or) position
if set on stdin/stdout.
If we re-open stdout and "drop" the O_APPEND,
we get rather "unexpected" behavior,
for example with repeated "systemd-run --pty >> some-log".
If someone carefully pre-positioned the passed in original file descriptors,
we avoid surprises if we do not reset file postition to zero.
fcntl F_GETFL first, and propagate O_APPEND if present in the existing flags.
Then use lseek to propagate the file position.
Frantisek Sumsal [Tue, 12 Mar 2024 12:11:16 +0000 (13:11 +0100)]
test: split logs from each test into separate files if requested
If both $ARTIFACT_DIRECTORY and $SPLIT_TEST_LOGS are set, split the
output from each test into a separate log file, so we don't have to load
one ginormous log file when checking the results.
Frantisek Sumsal [Tue, 12 Mar 2024 11:52:45 +0000 (12:52 +0100)]
test: clean up the integration test runner a bit
Antonio Alvarez Feijoo [Tue, 12 Mar 2024 14:22:43 +0000 (15:22 +0100)]
homed: fix typo
Frantisek Sumsal [Tue, 12 Mar 2024 13:49:55 +0000 (14:49 +0100)]
ci: reduce ASLR entropy
The latest GH Action runners started using 32-bit entropy for ASLR,
which makes it incompatible with llvm-14. This was fixed in later llvm
releases, but these aren't available on Ubuntu Jammy (22.04). Let's
reduce the ASLR entropy to 28-bit, which should make llvm happy again,
until the issue is resolved.
See: https://github.com/actions/runner-images/issues/9491
Lennart Poettering [Tue, 12 Mar 2024 13:03:29 +0000 (14:03 +0100)]
update TODO
Piotr Drąg [Sun, 3 Mar 2024 14:52:08 +0000 (15:52 +0100)]
catalog: update Polish translation
Luca Boccassi [Wed, 6 Mar 2024 01:12:19 +0000 (01:12 +0000)]
ukify: really add default .sbat for UKIs
This was lost on refactor, and only addons had a default uki
line in the .sbat. Add it back, and differentiate between the
default for UKIs vs the default for addons, so that they can
be revoked separately. These are only defaults and users are
encouraged to provide their own.
Follow-up for
a8b645dec8e6abf4c9ba0c93a6a0088953a2155e
Yu Watanabe [Tue, 12 Mar 2024 10:05:17 +0000 (19:05 +0900)]
Merge pull request #31716 from evverx/fuzz-lease-save-load
fuzz: save/load DHCP client leases
Lennart Poettering [Tue, 12 Mar 2024 09:45:24 +0000 (10:45 +0100)]
stat-util: make sure inode_type_to_string() handles anonymous inodes in a reasonable way
Antonio Alvarez Feijoo [Tue, 12 Mar 2024 09:43:31 +0000 (10:43 +0100)]
logind-inhibit: get rid of basename() in inhibitor_new()
Follow-up to #31594
Antonio Alvarez Feijoo [Tue, 12 Mar 2024 09:39:08 +0000 (10:39 +0100)]
logind: place 'ret' param at last
Follow-up to
2454cee32e
Lennart Poettering [Tue, 12 Mar 2024 09:23:34 +0000 (10:23 +0100)]
stat-util: add explicit helpers for checking if stat/statx is initialized
This is a follow-up for
945a8210c770801c8492eda03b6e9af3ec5d03a3 and
makes the st_dev check generic, so that we can reuse it some other
places. It also incorporates the non-NULL check now, to be a
comprehensive one-stop solution.
The helper is static inline so that compilers can optimize the redundant
checks away in case it is combined with other checks.
Mike Yuan [Tue, 12 Mar 2024 07:49:27 +0000 (15:49 +0800)]
homework-cifs: log correct errno
Follow-up for
606a1f203c8871871bc8c5833d66ccbef870b010
Mike Yuan [Tue, 12 Mar 2024 07:42:23 +0000 (15:42 +0800)]
data-fd-util: accept size == SIZE_MAX and translate that to strlen
Like what we already do at other places
Mike Yuan [Tue, 12 Mar 2024 07:10:03 +0000 (15:10 +0800)]
data-fd-util: some modernization
Mike Yuan [Tue, 12 Mar 2024 07:09:05 +0000 (15:09 +0800)]
fileio,data-fd-util: use U64_* more
Mike Yuan [Tue, 12 Mar 2024 06:23:36 +0000 (14:23 +0800)]
env-util: remove unneeded DISABLE_WARNING_FORMAT_NONLITERAL
_printf_ is used, so this shouldn't emit a warning
in the first place.
Mike Yuan [Tue, 12 Mar 2024 07:40:43 +0000 (15:40 +0800)]
Merge pull request #31671 from AdrianVovk/homework-cifs-credentials
homework-cifs: Pass password via fd
Mike Yuan [Tue, 12 Mar 2024 06:15:36 +0000 (14:15 +0800)]
Merge pull request #31713 from YHNdnzj/pidref-equal
pidref: use fd_inode_same to compare pidfds
Yu Watanabe [Tue, 12 Mar 2024 04:40:09 +0000 (13:40 +0900)]
Merge pull request #30021 from yuwata/dhcp-client-id-cleanups
dhcp-server: save bound leases to persistent storage, and load it on start
Ross Burton [Mon, 11 Mar 2024 16:41:02 +0000 (16:41 +0000)]
tests/run-unit-tests: add option to skip tests
In automated QA environments there may be tests that are known to fail,
and being able to skip them is useful to remove known failures from the
test log.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Luca Boccassi [Mon, 11 Mar 2024 18:13:57 +0000 (18:13 +0000)]
Merge pull request #31721 from aafeijoo-suse/service-util-help-fix
shared/service-util: actually use the `bus_introspect` argument in `help()`
Ross Burton [Mon, 11 Mar 2024 13:59:55 +0000 (13:59 +0000)]
test/run-unit-tests: sort the test cases we're executing
When reading test logs manually it is a lot easier when the tests are
sorted by name rather than by disk order.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Adrian Vovk [Thu, 7 Mar 2024 18:38:26 +0000 (13:38 -0500)]
homework-cifs: Pass password via fd
Pass the password into mount.cifs via a file descriptor, rather
than putting it into a plain-text file in /tmp. This uses the $PASSWD_FD
environment variable, which is undocumented but has existed since
forever (initial commit from 2010 [1] has it already)
[1]:
https://git.samba.org/?p=cifs-utils.git;a=blob;f=mount.cifs.c;hb=
ce0b1609a9eedce6c5eb20eab287ea44217c0a6a#l1477
Yu Watanabe [Mon, 26 Feb 2024 06:22:11 +0000 (15:22 +0900)]
test-network: add test case for DHCP server lease file
Yu Watanabe [Fri, 1 Mar 2024 03:10:49 +0000 (12:10 +0900)]
network/dhcp-server: save leases in state directory
Then, we can read the lease file on restart, and the DHCP server will be
able to manage previously assigned addresses.
To save leases in the state directory /var/lib/systemd/network/, this
adds systemd-networkd-dhcp-server.service, and by default
systemd-networkd does not start the DHCP server without the heler
service started.
Closes #29991.
Yu Watanabe [Sun, 10 Mar 2024 05:59:53 +0000 (14:59 +0900)]
fuzz-dhcp-server: also test saving and loading lease file
Yu Watanabe [Tue, 2 Jan 2024 21:07:17 +0000 (06:07 +0900)]
sd-dhcp-server: introduce sd_dhcp_server_set_lease_file() and dhcp_server_{save,load}_leases().
The functionality is not used networkd yet in this commit, but will be
used in later commits.
Yu Watanabe [Fri, 1 Mar 2024 01:37:51 +0000 (10:37 +0900)]
sd-dhcp-server: also expose lease expiration timestamp in realtime
Here, we use map_clock_usec_raw(), instead of map_clock_usec() to reduce
number of calls of now() -> clock_gettime().
Yu Watanabe [Wed, 6 Mar 2024 00:57:06 +0000 (09:57 +0900)]
time-util: expose map_clock_usec_internal() as map_clock_usec_raw()
This will be used later.
Yu Watanabe [Tue, 2 Jan 2024 21:07:05 +0000 (06:07 +0900)]
sd-dhcp-server-lease: move functions to build json format
No functional change, just preparation for later commits.
Yu Watanabe [Mon, 11 Mar 2024 16:47:17 +0000 (01:47 +0900)]
sd-dhcp-server: refuse invalid hostname in request
Currently, the received hostname is not used for assigning an address to
the host, or options in the subsequent reply message. But, the parsed
hostname is exposed through DBus, and possibly Varlink in the future.
Let's ignore spurious hostname.
Yu Watanabe [Mon, 11 Mar 2024 16:32:03 +0000 (01:32 +0900)]
dhcp-option: refuse control and non-UTF8 characters in string option
We oftem save parsed DHCP options into a file, or expose them
through DBus or Varlink. In such case, control characters or non-UTF8
characters may cause many kind of unexpected errors. In general, a DHCP
message that have string options with spurious characters is mostly
malformed or broken. Let's refuse them.
This also makes dhcp_option_parse_string() do not free 'ret' argument,
to follow our usual coding style. So, callers now need to free the
pre-exisitng string if necessary.
Fixes #31708.
Yu Watanabe [Fri, 1 Mar 2024 03:09:00 +0000 (12:09 +0900)]
test-network: add support for systemd-networkd-persistent-storage.service
Yu Watanabe [Mon, 26 Feb 2024 01:33:20 +0000 (10:33 +0900)]
networkctl: introduce "persistent-storage" command
Then, this introduces systemd-networkd-persistent-storage.service.
systemd-networkd.service is an early starting service. So, at the time
it is started, the persistent storage for the service may not be ready,
and we cannot use StateDirectory=systemd/network in
systemd-networkd.service.
The newly added systemd-networkd-persistent-storage.service creates the
state directory for networkd, and notify systemd-networkd that the
directory is usable.
Yu Watanabe [Fri, 1 Mar 2024 02:21:56 +0000 (11:21 +0900)]
network/varlink: introduce io.systemd.Network.SetPersistentStorage method
And make the networkd use state directory.
Currently, the state directory and the method are not used, but will be used later.
Adrian Vovk [Mon, 11 Mar 2024 16:23:06 +0000 (12:23 -0400)]
data-fd-util: Fixup header
inttypes.h doesn't define size_t
Yu Watanabe [Fri, 1 Mar 2024 04:38:59 +0000 (13:38 +0900)]
test-network: copy system unit files from build or source directory
Addresses https://github.com/systemd/systemd/pull/30021#issuecomment-
1971090682.
Yu Watanabe [Fri, 1 Mar 2024 04:21:20 +0000 (13:21 +0900)]
test-network: drop unused options and variables
This also renames several variables, and replace RuntimeError with
assert.