Commit Graph
55234 Commits
Author SHA1 Message Date
Yu Watanabe a145343b90 network/dhcp-server: save and load leases in runtime directory when PersistLeases=runtime
With 9ccc369ff3, PersistLeases= is
disabled on the host side virtual interfaces for containers.

However, even it is not necessary to save the leases for containers
on a persistent storage, still we should save them on somewhere.
Otherwise, leases will be lost when networkd on the host is restarted
or the host side interface is reconfigured.

This introduce PersistLeases=runtime to save and load leases on runtime
storage.
2025-06-14 03:41:20 +09:00
Yu Watanabe 98b02dd7e7 sd-dhcp-server: reopen fd only when it is valid
Fixes a bug in 11b88419ae.
2025-06-14 02:53:31 +09:00
Yu Watanabe 2c154c54e1 network: use dns_name_hash_ops_free to manage domains 2025-06-14 00:17:14 +09:00
Yu Watanabe 38de38a70d ordered-set: introduce ordered_set_put_strdup_full() and friends which take hash ops 2025-06-14 00:06:43 +09:00
Yu Watanabe 6ffc16dfd9 network: use the same hash ops used when allocated
Fixes #37830.
2025-06-13 23:46:29 +09:00
Ryan Blue 13ce5d4632 network/can: properly handle CAN.RestartSec=0
Previously, 0 was ignored and restart-ms wouldn't get added to the
netlink message. Instead, set the attribute unconditionally.
2025-06-13 23:37:36 +09:00
Yu Watanabe 1f87275736 network/dhcp4: release previously acquired DHCP lease when BOOTP will be enabled 2025-06-13 14:15:04 +09:00
Colin FosterandAvram Dorfman 0dbb5139a7 network/dhcp4: add ability to use BOOTP
Add the following network option to enable BOOTP:

[DHCPv4]
Bootp=yes

This will allow a two message request / reply sequence that doesn't
require DHCP message types.

Co-authored-by: Avram Dorfman <dorfman@est.org>
2025-06-13 14:15:04 +09:00
Colin FosterandAvram Dorfman 2871f967cc test-dhcp-client: add test for bootp clients
Verify that BOOTP replies are successfully handled by the sd-dhcp-client
when configured for BOOTP.

Co-authored-by: Avram Dorfman <dorfman@est.org>
2025-06-13 14:15:04 +09:00
4ad29bad7b sd-dhcp-client: add ability to support bootp
BOOTP can be used to sign a static IP to clients. Instead of using the
four message exchange, and Option 53 (DHCP Message Type) there is only a
two message exchange. This adds the support for this exchange.

Co-authored-by: Avram Dorfman <dorfman@est.org>
Co-authored-by: Yu Watanabe <watanabe.yu+github@gmail.com>
2025-06-13 14:14:33 +09:00
Yu Watanabe 98a9b0f92a sd-dhcp-client: move comment to relevant place 2025-06-13 13:35:21 +09:00
Yu Watanabe 556f641fb5 dhcp: several coding style cleanups
- rename arguments for storing results,
- reorder arguments to move ret_xyz at the end,
- add several missing assertions.
2025-06-13 13:35:21 +09:00
Colin Foster be40a31f5c dhcp: relocate type field
The type field is a DHCP-specific parameter. Relocate the parameter so
there is a clearer separation between DHCP and BOOTP parameters.
2025-06-13 13:35:21 +09:00
Yu Watanabe 984ae058dc discover-image: several cleanups around image_discover() (#37813) 2025-06-13 07:57:28 +09:00
Yu Watanabe d604341ca5 sysext: drop unnecessary struct MethodListParameters 2025-06-13 05:13:54 +09:00
Yu Watanabe 361b13ca7e include/linux: update kernel headers from v6.16-rc1 2025-06-12 16:04:40 +01:00
Lennart Poettering 42514e5437 vmspawn: add extra drives *after* the primary drive, not before
Otherwise, if you mix --image= with --extra-drive= you end up with
/dev/sda pointing to the latter, nor the former. Which is really weird
of course...
2025-06-12 16:32:50 +02:00
Yu Watanabe 78f8d5ed71 network: also check ID_NET_MANAGED_BY property on reconfigure
Previously, the property was checked only when an uevent is received,
so even if an interface has ID_NET_MANAGED_BY property, the interface
will be configured by networkd when reconfiguration is triggered e.g.
when interface state is changed.

Follow-up for ba87a61d05.
Fixes #36997.
2025-06-12 14:24:50 +09:00
Mike Yuan 77644f0786 machinectl: several trivial cleanups and man page fix (#37812)
Fixes #27481.
2025-06-11 22:03:28 +02:00
Yu Watanabe 050d6599ed network: use up_or_down() at several more places 2025-06-11 17:16:08 +01:00
Yu Watanabe 624d369868 discover-image: make image_discover() allocate hashmap when necessary 2025-06-11 22:45:08 +09:00
Yu Watanabe d654b9dcfd discover-image: coding style fixlets 2025-06-11 22:45:08 +09:00
Yu Watanabe b52d575845 machinectl: use _RUNNER_MAX rather than ELEMENTSOF() 2025-06-11 22:41:54 +09:00
Yu Watanabe 093b025548 machinectl: align table 2025-06-11 22:41:54 +09:00
Yu Watanabe 114ad16c4d login: drop unnecessary dependency to libacl
With c960ca2be1, logind does not handle
ACL anymore, but triggers events for udevd and udevd updates ACL.
Hence, libacl is not necessary for logind.
2025-06-11 09:18:54 +02:00
Mike Yuan d9bf815093 string-util: introduce strprepend_with_separator() 2025-06-11 12:50:51 +09:00
Lennart Poettering 373e6cdadb resolved: ignore mDNS replies from legacy mDNS ports
mDNS replies always have to come from the mDNS port (unlike mDNS
queries, which are also allowed from non-mDNS ports). Hence refuse this.

Fixes: #33806
2025-06-11 00:33:05 +01:00
Luca Boccassi abe149d669 add parameter to specify hash alg used for PKCS#1 signature in PKCS#7 creation (#37794)
The pkcs7_new() function currently uses the hash algorithm from the X509
certificate's signature, but the content signature may use a different
hash algorithm. This adds a parameter to allow specifying what hash
algorithm the content signature generation used.
2025-06-10 23:07:26 +01:00
Yu Watanabe 5814acca9a resolve: exit from loop for transactions when transactions has been regenerated
Fixes #37458.
2025-06-10 17:30:03 +01:00
Dan Streetman 103fa98f84 keyutil: add parameter to specify hash algorithm used for PKCS#1 signature 2025-06-10 08:45:31 -04:00
Dan Streetman 768a297c42 openssl: add hash_algorithm parameter to pkcs7_new()
The pkcs7_new() function currently uses the hash algorithm from the X509
certificate's signature, but the content signature may use a different hash
algorithm. This adds a parameter to allow specifying what hash algorithm the
content signature generation used.
2025-06-10 08:44:51 -04:00
Lennart Poettering d83ceacc7e tree-wide: say in log message that we ignore error conditions of certain sockopts
Follow our usual style on this.

Follow-up for: #37793
2025-06-10 16:34:51 +09:00
Yu Watanabe bdf42d9fd4 sysusers: always initialize ret_xyz when write_temporary_xyz() succeed
No functional change. Just for following our coding style.
2025-06-10 12:57:01 +09:00
Yu Watanabe 58bb08be6d dirent-util: follow our coding style 2025-06-10 12:57:01 +09:00
Luca Boccassi bb887cf22e socket: downgrade not-supported logging for SO_PASSSEC
Kernel 6.16 started returning EOPNOTSUPP when a required kconfig
is disabled. Downgrade to debug level in that case.

Fixes https://github.com/systemd/systemd/issues/37783
2025-06-09 21:51:39 +02:00
Mike Yuan 0e9667fd9a basic/forward: replace tab with space 2025-06-09 20:39:23 +02:00
Yu Watanabe 4081e072ee Several follow-ups for recent header cleanups (#37785) 2025-06-10 01:01:05 +09:00
Yu Watanabe 169d270e81 meson: update generating lists
- config.h is not necessary when generating lists, hence drop it.
- linux/audit.h and libaudit.h are included by missing_audit.h,
  hence not necessary to include them explicitly.
2025-06-09 16:29:49 +01:00
Antonio Alvarez Feijoo e16769b8c0 ptyfwd: use hostname argument in pty_forward_set_window_title() if set
Fixes 23f9ff4724
2025-06-09 16:24:44 +01:00
Yu Watanabe afe1567297 include: net/if.h requires features.h
The header uses __THROW, which is defined in features.h, to make the
header self-consistent.
Note, src/basic/include/sys/mount.h also uses __THROW, and includes
features.h.
2025-06-09 22:45:23 +09:00
Yu Watanabe 8139906eaa journal: use poll.h rather than sys/poll.h
This does not change anything, as poll.h is a one-line wrapper of sys/poll.h.
Note that man pages e.g. poll(2) indicate to include poll.h rather than sys/poll.h.
So, let's use poll.h.
2025-06-09 22:45:23 +09:00
Yu Watanabe b5aed60222 selinux-setup.c: drop redundant inclusion of selinux/selinux.h
The header is anyway included by selinux-util.h in below.
2025-06-09 22:45:23 +09:00
Yu Watanabe f37b4031f8 tree-wide: drop unnecessary inclusion of sys/quota.h
As it is included by quota-util.h anyway.
2025-06-09 22:45:23 +09:00
Yu Watanabe e11f01b78a utmp-wtmp: replace _PATH_WTMPX -> WTMPX_FILE
_PATH_WTMPX is a kind of internal definition in glibc, and
WTMPX_FILE should be an exposed definition. Both are same,
let's use WTMPX_FILE.
Note, for utmp, we use UTMPX_FILE, rather than _PATH_UTMPX.
Let's use consistent macros.
2025-06-09 22:45:23 +09:00
Yu Watanabe afcb6d671b forward: also include paths.h
It provides several important constants, especially _PATH_BSHELL, which
is used in PID1, executor, and run. The header has been included
indirectly through e.g. libmount.h, mntent.h, utmpx.h, and so on.
Let's explicitly include it in forward.h, as libmount.h and friends that
includes paths.h are irrelevant to _PATH_BSHELL, and we may easily fail
to build when code is touched.
The header is not heavy, hence should not hurt anything.
2025-06-09 22:45:23 +09:00
Yu Watanabe a60495c44b cryptsetup-util: move definition of crypt_token_max()
As it uses streq(), but string-util.h is not included in the header.
2025-06-09 22:45:23 +09:00
Yu Watanabe 14dc330c9c libcrypt-util: include random-util.h
Necessary for crypto_random_bytes(), which is used in the branch that
HAVE_CRYPT_GENSALT_RA is false. Unfortunately, our CIs tested only the
other branch.
2025-06-09 22:45:23 +09:00
Luca Boccassi f245fa0058 test: do not fail when lacking privs to create sysfs directory
4109s /* test_mdio_bus */
4109s src/libsystemd/sd-device/test-sd-device.c:55: Assertion failed: Expected "mkdir_p(syspath, 0755)" to succeed, but got error: Permission denied
4109s (mdio_bus) terminated by signal ABRT.
4109s src/libsystemd/sd-device/test-sd-device.c:37: Assertion failed: Expected "r = safe_fork("(mdio_bus)", FORK_CLOSE_ALL_FDS|FORK_DEATHSIG_SIGTERM|FORK_REOPEN_LOG|FORK_LOG|FORK_WAIT|FORK_NEW_MOUNTNS|FORK_MOUNTNS_SLAVE, NULL)" to succeed, but got error: Protocol error

Follow-up for 687a92a1b6
2025-06-09 15:11:30 +09:00
Daan De Meyer 1b4645d762 forward: Drop socklen_t forward declaration
This is glibc specific and doesn't exist on musl, since removing only
means adding one more include in selinux-util.h, let's drop it.

Fixes #37779
2025-06-08 10:58:56 +09:00
Lennart Poettering 1434ccf709 nspawn: do basic port to PidRef
THis is sometimes a bit superficial, but in many cases allows us to use
pidfd for various of our operations.
2025-06-07 00:28:07 +02:00