Commit Graph
100 Commits
Author SHA1 Message Date
Yu Watanabe cd7fcda543 wait-online: make manager_link_is_online() return 0 when in unmanaged state
Previously, even if a link is in unmanaged state, the function may
returns positive value. So, even if all managed links are in the configured
sate but do not satisfy the online criteria, e.g., IPv4 address state,
then wait-online finishes with positive value.

This makes the function always return 0 for unmanaged state. So, at
least one managed link must satisfies the online criteria.

This also adds more comments and debugging logs.

Fixes #22246.
2022-01-26 22:41:47 +09:00
Yu Watanabe 5f200833ed wait-online: rename Manager elements 2022-01-26 22:41:47 +09:00
Yu Watanabe 9697662915 hostname: expose hardware serial through dbus
Closes #22119.
2022-01-24 21:09:37 +00:00
Yu Watanabe f338a496e4 NEWS: update 2022-01-25 03:03:09 +09:00
Yu Watanabe 1d2842d1e6 NEWS: mention about the regression in WireGuard 2022-01-25 02:56:20 +09:00
Yu Watanabe 0850fb78af Merge pull request #22236 from yuwata/fuzz-dhcp-server
fuzz-dhcp-server: three fixes or improvements
2022-01-25 02:19:22 +09:00
Yu Watanabe bf2a8b7b13 fuzz-dhcp-server: attach sd_event to make dhcp_server_cleanup_expired_leases() works in the fuzzer
Otherwise, most code paths in dhcp_server_handle_message() are not
evaluated by the fuzzer.
2022-01-25 00:05:02 +09:00
Yu Watanabe 0590f1b58c fuzz-dhcp-server: duplicate input data
As `dhcp_server_handle_message()` -> `ensure_sane_request()` may modify
the input data, and that causes error in some fuzzing engine.
2022-01-24 19:37:37 +09:00
Yu Watanabe c3da2e4732 fuzz-dhcp-server: also set new lease elements correctly
The fuzzer does not send anything to the address, so it should be not
necessary, but just for safety.
2022-01-24 19:28:21 +09:00
Yu Watanabe 766527e8ae Merge pull request #22226 from yuwata/hostname-allow-to-override-hardware-vendor-and-model
hostname: allow to override hardware vendor and model
2022-01-24 06:55:29 +09:00
Yu Watanabe a6ba7d58f2 Merge pull request #22227 from yuwata/dhcp-server-fix-heap-buffer-overflow
sd-dhcp-server: fix heap buffer overflow
2022-01-24 06:55:02 +09:00
Yu Watanabe 46b53e8035 resolve: synthesize null address, IPv4 broadcast address, or invalid domain
These are filtered in `dns_scope_good_domain()`, but not synthesized.

Fixes #22229.
2022-01-24 06:46:50 +09:00
Yu Watanabe 3b2ac14ac4 resolve: synthesize empty name
Do not return any error for empty name. Just returns empty answer.

Before:
---
$ dig .

; <<>> DiG 9.16.24-RH <<>> .
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 13617
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;.				IN	A

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Jan 24 05:49:30 JST 2022
;; MSG SIZE  rcvd: 28
---

After:
---
$ dig .

; <<>> DiG 9.16.24-RH <<>> .
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7957
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;.				IN	A

;; Query time: 1 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Jan 24 06:05:02 JST 2022
;; MSG SIZE  rcvd: 28
---

Replaces #22197.

Fixes RHBZ#2039854 (https://bugzilla.redhat.com/show_bug.cgi?id=2039854).
2022-01-24 06:45:37 +09:00
Yu Watanabe 7bdf419830 dns-domain: re-introduce dns_name_is_empty() 2022-01-24 06:06:59 +09:00
Yu Watanabe 7c0601102a Revert "resolve: refuse to resolve empty hostname"
This reverts commit 6e8ecb8974.
2022-01-24 05:51:47 +09:00
Yu Watanabe a596631808 fuzz: add testcases of heap-buffer-overflow for sd-dhcp-server 2022-01-24 04:52:33 +09:00
Yu Watanabe ab4f9eeb7b sd-dhcp-server: fix heap buffer overflow
This checks client hardware length earlier.
2022-01-24 04:49:33 +09:00
Yu Watanabe b87209f933 Merge pull request #22222 from yuwata/dhcp-server-support-non-ethernet-packet
dhcp-server: support packets from non-Ethernet interfaces
2022-01-24 04:19:26 +09:00
Yu Watanabe 54d95d02e3 sd-dhcp-server: support packet from non-Ethernet interface
Fixes #22217.
2022-01-24 04:18:20 +09:00
Yu Watanabe 97fa338dce sd-dhcp-client,sd-dhcp-client-server: set chaddr in dhcp_message_init()
And also set chaddr and hlen for packets on non-Ethernet interfaces,
except for InfiniBand.
2022-01-24 04:18:20 +09:00
Yu Watanabe a6508f37c9 sd-dhcp-client: fix RFC number 2022-01-24 04:18:20 +09:00
Yu Watanabe 2cb66bbdfb sd-dhcp-server: change the type of the client ID data 2022-01-24 04:18:20 +09:00
Yu Watanabe 255d493324 sd-dhcp-server: use free_and_replace() at one more place 2022-01-24 04:18:20 +09:00
Yu Watanabe 4f9dcf3dc5 sd-dhcp-server: shorten code a bit 2022-01-24 04:18:20 +09:00
Yu Watanabe f4759ae051 sd-dhcp-server: drop unnecessary buffer duplication
The block try to find and remove the existing static lease which matches
the provided client ID, and the provided client ID will not be stored
anywhere. Hence, it is not necessary to duplicate it.
2022-01-24 04:16:41 +09:00
Yu Watanabe bb995f747a Merge pull request #21908 from yonran/environmentfile-docs
man: clarify Environmentfile format
2022-01-24 00:22:50 +09:00
Yu Watanabe da60d91c99 rule: fallback to use board information if product information is not set 2022-01-23 13:04:37 +09:00
Yu Watanabe a93306a22e rule: make ID_SYSFS_ATTRIBUTE_MODEL also accept product_name 2022-01-23 12:54:37 +09:00
Yu Watanabe 4fc7e4f374 hostname: allow to override hardware vendor and model
Sometimes hardware vendor does not set DMI info correctly.
Already there is a way that the dbus properties can be overriden by
using hwdb. But that is not user friendly.

This adds two new fields in /etc/machine-info.

Closes #22207.
2022-01-23 12:48:00 +09:00
Yu Watanabe 8c8b1800e9 hostname: introduce context_get_chassis() and use it everywhere
Follow-up for 4b35eb2579.
2022-01-23 03:11:29 +09:00
Yu Watanabe f939a8984a Merge pull request #22209 from systemd/wip/hadess/chassis-override
hostname: Allow overriding the chassis type from hwdb
2022-01-22 16:49:36 +09:00
Yu Watanabe 57cbf080b3 Merge pull request #22205 from yuwata/udevadm-info-cleanups
udevadm: keep watch directory and several cleanups
2022-01-22 02:45:36 +09:00
Yu Watanabe 4881a0d2d4 udevadm: add more assertions 2022-01-22 00:45:14 +09:00
Yu Watanabe 636ab00182 udevadm: simplify the code of removing udev state files 2022-01-22 00:44:51 +09:00
Yu Watanabe 9e0bd1d69b udevadm: split assertions
Then we can easily find which pointer is NULL.
2022-01-22 00:16:38 +09:00
Yu Watanabe bd97980193 udevadm: do not remove watch directory
See the comment in the code.
2022-01-22 00:13:32 +09:00
Yu Watanabe ac16a593cf Merge pull request #22202 from mwilck/keep-links-02
udevadm info --cleanup-db: don't delete information for kept db entries
2022-01-22 00:10:09 +09:00
Yu Watanabe 0d63af0977 Merge pull request #22199 from yuwata/resolve-reduce-attempts-reading-networkd-link-file
resolve: reduce attempts of reading networkd's link file
2022-01-21 09:45:45 +09:00
Yu Watanabe 6e8ecb8974 resolve: refuse to resolve empty hostname
Previously, varlink or dbus methods return
io.systemd.Resolve.NoNameServers or BUS_ERROR_NO_NAME_SERVERS if an
empty hostname is provided, and thus nss-resolve returns NSS_STATUS_TRYAGAIN.

That causes getaddrinfo() returns 'Temporary failure in name resolution'
instead of 'Name or service not known'.

This makes calling varlink or dbus method with an empty hostname result
-EINVAL, and hence nss-resolve returns NSS_STATUS_NOTFOUND.

Fixes RHBZ#2039854 (https://bugzilla.redhat.com/show_bug.cgi?id=2039854).
2022-01-21 09:45:29 +09:00
Yu Watanabe 9969c901d3 Merge pull request #22183 from anitazha/oomdkillfix
oomd: fix potential race between killing cgroups and cleaning up cgroups
2022-01-21 09:44:12 +09:00
Yu Watanabe 92796278f8 resolve: reduce attempts of reading link file
The function `link_relevant()` is called repeatedly in `link_allocate_scopes()`.
Let's not read networkd's link file in `link_relevant()`.

Closes #22190.
2022-01-21 06:22:39 +09:00
Yu Watanabe 1a4152f02b wait-online: use network_link_get_operational_state() 2022-01-21 06:22:39 +09:00
Yu Watanabe 61dc4b9ea9 network-util: introduce network_link_get_operational_state() 2022-01-21 06:22:21 +09:00
Yu Watanabe e9662a28a4 resolve: use FLAGS_SET() macro 2022-01-21 06:22:16 +09:00
Yu Watanabe 12f45cbbbe resolve: use netif_has_carrier() 2022-01-21 05:07:10 +09:00
Yu Watanabe 61e964df71 netif-util: introduce netif_has_carrier() 2022-01-21 05:02:42 +09:00
Yu Watanabe 605bb1634b resolve: drop redundant call of link_allocate_scopes() and link_add_rrs()
In `manager_process_link()`, the function `link_update()` is called just
after `link_process_rtnl()`, and `link_update()` also calls
`link_allocate_scopes()` and `link_add_rrs()`. Hence, the calls in
`link_process_rtnl()` are redundant.
2022-01-21 04:46:20 +09:00
Yu Watanabe 8827f4106b resolve: use log_link_warning_errno() or freinds more 2022-01-21 04:43:37 +09:00
Yu Watanabe 57786db797 resolve: add debuging log of interface name change 2022-01-21 04:33:11 +09:00
Yu Watanabe 98b1eb711c resolve: fix assertion triggered when r == 0
Fixes #22178.
2022-01-20 15:52:14 +09:00
Yu Watanabe 5ab9addd68 test: replace multiple echo with cat
Suggested by shell check SC2129.
2022-01-19 20:48:36 +09:00
Yu Watanabe e916276016 udev-util: add event UUID to debugging logs 2022-01-19 20:48:36 +09:00
Yu Watanabe d7cb60daf6 sd-device: add more debugging logs in device_set_syspath()
On failure, the function previously sometimes logs in debug level, but
sometimes does not. Let's always log the error cause.
2022-01-19 20:48:36 +09:00
Yu Watanabe 30b6f7d714 meson: skip to search clang, llvm-string, and bpftool, if libbpf not found
Prompted by https://github.com/systemd/systemd/pull/22093#issuecomment-1016254914.
2022-01-19 14:23:41 +03:00
Yu Watanabe 39f83dd760 test: wait for newly created btrfs triggered
Fixes the second issue in #21819.
2022-01-19 09:32:23 +00:00
Yu Watanabe 1e8e9730d2 test-network: add testcases for configuring SR-IOV by .link file 2022-01-19 15:00:53 +09:00
Yu Watanabe a03ff4c0fe test-network: split out SR-IOV test to new class 2022-01-19 15:00:53 +09:00
Yu Watanabe 0eed039c92 test-network: silence check for alternative names 2022-01-19 15:00:53 +09:00
Yu Watanabe df25b9e48c network: show driver in debug log 2022-01-19 15:00:53 +09:00
Yu Watanabe 252e96eaa9 udev/net: check if the requested SR-IOV virtual function exists before configuring it 2022-01-19 15:00:53 +09:00
Yu Watanabe 41ce9d769d udev/net: allow to set number of SR-IOV virtual functions
This adds SR-IOVVirtualFunctions= setting in [Link] section.
2022-01-19 15:00:53 +09:00
Yu Watanabe bd29dfef8b udev/net: also support [SR-IOV] section in .link files
The same section is already supported by .network files. But such
low-level inteerface setting should be done by udevd, instead of
networkd. Let's also support the same semantics by .link files.

Prompted by https://github.com/systemd/systemd/issues/20474#issuecomment-901901360.
2022-01-19 15:00:49 +09:00
Yu Watanabe b4fd34d81c network: move SR-IOV related functions to src/shared/netif-sriov.[ch] 2022-01-19 14:57:59 +09:00
Yu Watanabe 307fe3cdf2 network: rename NetworkConfigSection -> ConfigSection
And move it and relevant functions to conf-parser.[ch].
2022-01-19 14:57:59 +09:00
Yu Watanabe e5c4289a9d network: sr-iov: add missing assertion 2022-01-19 14:57:59 +09:00
Yu Watanabe e217e22a77 network: sr-iov: drop conflicting sections 2022-01-19 14:57:59 +09:00
Yu Watanabe cfd1d61fe4 network: sr-iov: fix section name in log messages 2022-01-19 14:57:59 +09:00
Yu Watanabe edaca18739 Merge pull request #22161 from kreijack/ignore-boot-entries
bootctl: Ignore boot entries (continue #22041)
2022-01-19 14:43:10 +09:00
Yu Watanabe 1fb50408ce pid1,cgroup-show: ignore -EOPNOTSUPP in cg_read_pid()
The function is called in recursion, and cgroup.procs in some subcgroups
may not be read.

Fixes #22089.
2022-01-18 12:34:30 +01:00
Yu Watanabe f67b4351f3 test: fix a copy-and-paste error
Follow-up for 12727c2bc2.

Addresses https://github.com/systemd/systemd/pull/22125#discussion_r786358474.

Fixes CID#1469023.
2022-01-18 09:30:46 +01:00
Yu Watanabe 06006691b5 kernel-install: also remove modules.builtin.alias.bin
Fixes RHBZ#2016630.
2022-01-17 12:10:03 +00:00
Yu Watanabe adc1b76c30 core: add missing dependency DBus properties
Follow-up for 0bc488c99a.

Also sort dependency properties to make them match the definition of
`enum UnitDependency` in basic/unit-def.h.

Fixes #22133.
2022-01-16 14:05:33 +00:00
Yu Watanabe cc8943b84a core: update log message
Fixes CID#1469009.
2022-01-16 14:05:18 +00:00
Yu Watanabe e135559d80 network: wireguard: also accept negative boolean values to disable adding routes
RouteTable=off was introduced to provide consistency with wg-quick
command. This makes the RouteTable= settings accepts other negative
boolean values.
2022-01-16 19:25:28 +09:00
Yu Watanabe cfe1237f38 network: wireguard: do not add routes to AllowedIPs= by default
As setting such routes may break existing setups.

Closes #21964.
2022-01-16 19:18:23 +09:00
Yu Watanabe 9e3e592946 Merge pull request #22098 from DaanDeMeyer/journal-corrupt-2
journal: Fixes for handling of corrupt entry objects
2022-01-14 21:23:32 +09:00
Yu Watanabe ba3440b9ab Merge pull request #22096 from keszybz/networkctl-bus-once
Open the bus once in networkctl
2022-01-14 21:21:08 +09:00
Yu Watanabe dc7e9c1bc4 meson: use the compiler command array as is
Also check if the flags used when building bpf are supported by clang.
2022-01-14 17:01:58 +09:00
Yu Watanabe a6ac8b5a4d meson: check if clang supports bpf 2022-01-14 16:43:31 +09:00
Yu Watanabe ea78d2fb11 meson: require bpftool version >= 5.6
Closes #22051.
2022-01-14 16:43:31 +09:00
Yu Watanabe 902bbdc4b6 network: use scope link for direct unicast routes by default
Strictly speaking, this breaks the backward compatibility, but I guess
in most cases people already sets Scope=link for such routes.

This behavior matches with how 'ip route' command adds such route by
default.

Prompted by https://twitter.com/jplitza/status/1480500562391179270.
2022-01-13 22:46:52 +00:00
Yu Watanabe 2ebb69bc09 boot: add missing error check
Follow-up for 661615a0af.

Fixes CID#1468973.
2022-01-13 14:17:15 +01:00
Yu Watanabe 95c514e9a5 test: add testcase for broken NTP server option
For issue #22099.
2022-01-13 20:21:40 +09:00
Yu Watanabe 37408dd264 test: voidify test functions
This also drops unnecessary arguments, and unbreak several lines.
2022-01-13 20:20:48 +09:00
Yu Watanabe 16de849fd8 sd-dhcp6-client: expose client_parse_message()
To introduce tests for the function in later commits.
2022-01-13 20:20:19 +09:00
Yu Watanabe 0ac9daa4a1 sd-dhcp6-client: ignore broken non-critical options
The commit b89a3758e9 made the validity
check of the received message stricter. E.g. if the client received a
message with broken NTP server option, then the entire message is
dropped.

This relaxes the check. If some non-critical options are broken, then
ignore the options, but the message itself is still accepted.

Fixes #22099.
2022-01-13 20:20:19 +09:00
Yu Watanabe 2811b1263b Merge pull request #22100 from bluca/test_part
Fix TEST-58-REPART on ppc64el
2022-01-13 14:00:36 +09:00
Yu Watanabe 0a1f0bf405 Merge pull request #21728 from Werkov/bfq-io-weight
bfq.io.weight followups and cleanup
2022-01-12 22:22:43 +09:00
Yu Watanabe 174eab0066 Merge pull request #22037 from fbuihuu/watchdog-minor-improvements
Watchdog minor improvements
2022-01-12 22:09:50 +09:00
Yu Watanabe d5ff7bdbb7 Merge pull request #22088 from medhefgo/meson
meson: Small improvements
2022-01-12 22:01:27 +09:00
Yu Watanabe d5f8fd5b00 network: dhcp6: do not request address if UseAddress=no
Fixes #22068.
2022-01-11 17:05:12 +00:00
Yu Watanabe aac470326e pid1: voidify manager_override_watchdog()
As it always returns 0.
2022-01-07 09:44:32 +01:00
Yu Watanabe b144177240 watchdog: rebreak comments 2022-01-07 09:31:57 +01:00
Yu Watanabe 2bdd2e7ac9 Merge pull request #22031 from floppym/issue22001-1
test-watchdog adjustments
2022-01-07 12:28:47 +09:00
Yu Watanabe 8cc8a073a8 test: add test cases for fstab-generator 2022-01-07 00:58:50 +09:00
Yu Watanabe 7611946ebc tree-wide: fix typo 2022-01-06 22:20:11 +09:00
Yu Watanabe c0b28d44a9 NEWS: sort entries 2022-01-06 22:18:05 +09:00
Yu Watanabe b322e683ac meson: install test-network-generator-conversion.sh even if networkd is not enabled
Follow-up for 987dd89c77.
2022-01-06 20:14:39 +09:00
Yu Watanabe 155e1bb4e7 fstab-generator: also skip other network filesystems and live image 2022-01-06 20:14:35 +09:00
Yu Watanabe 77b8e92de8 fstab-generator: skip root directory handling when nfsroot is requested
Fixes RHBZ#2037233 (https://bugzilla.redhat.com/show_bug.cgi?id=2037233).
2022-01-06 20:14:16 +09:00