Commit Graph
100 Commits
Author SHA1 Message Date
Yu Watanabe 25ac30bdb8 log: rename variables to store function call results 2023-11-16 09:21:10 +00:00
Yu Watanabe ebfbc5b9d8 Merge pull request #30043 from mrc0mmand/more-assert_return
More `assert_return()` shenanigans
2023-11-16 11:28:33 +09:00
Yu Watanabe 335185f1f2 Merge pull request #30045 from poettering/discover-image-tweaklets
discover-image: tiny tweaklets
2023-11-16 11:28:04 +09:00
Yu Watanabe 4d8b8f79d0 Merge pull request #30044 from poettering/dissect-tool-tweaklets
systemd-dissect --discover tweaklets
2023-11-16 11:27:47 +09:00
Yu Watanabe 69f1c33425 test: sd_bus_process() may assign NULL even if it returns positive
Let's not trigger assert_return() needlessly.

Prompted by #30029.
2023-11-16 09:35:44 +09:00
Yu Watanabe ce5a6d5307 test: several cleanups for test-bus-chat
- use sd_bus_query_sender_creds() to retrieve credentials,
- read credentials only when we get credentials, to avoid triggering
  assert_return(),
- downgrade log level of expected failure, and update log message about
  unexpected success.

Prompted by #30029.
2023-11-16 09:35:44 +09:00
Yu Watanabe 02dd646b16 sd-bus: drop SD_BUS_CREDS_AUGMENT flag
On checking if the message has enough credentials, the special flag
needs to be dropped.

Fixes a bug introduced by 705a415f68.
2023-11-16 09:35:44 +09:00
Yu Watanabe 22185cb71e sd-bus: insert missing space 2023-11-16 09:35:44 +09:00
Yu Watanabe aecedc48a6 sd-device: do not trigger assertion by a bad udev rules
The assertion can be triggered by bad `$attr{[<subsys>/<sysname>]<attribute>}`
formatting. That's not a programmer's error, but a runtime error.

Prompted by #30029.
2023-11-16 02:32:12 +09:00
Yu Watanabe c0b927eb3a dhcp: do not trigger assertion by malformed messages
This also changes error code from -ENODATA -> -EBADMSG,
as we received bad message in that case.

Prompted by #30029.
2023-11-16 02:32:12 +09:00
Yu Watanabe 4f6ae86629 network: do not try to create netdev from tests
Prompted by #30029.
2023-11-16 02:32:12 +09:00
Yu Watanabe fdf759e3ae sd-dhcp6-client: fix DUID data length passed to hexmem()
Fixes a bug introduced by 6b7d5b6eaf.
2023-11-15 14:41:02 +09:00
Yu Watanabe 1ae9a98292 dhcp: fix maximum DUID size
This effectively reverts 9291496011.

This fixes the maximum length of DUID.
See RFC 8415 section 11.1.
2023-11-15 14:38:55 +09:00
Yu Watanabe b3884498a9 dhcp: drop unused prototype
Follow-up for 53488ea352.
2023-11-15 10:17:34 +09:00
Yu Watanabe 516cca5a51 Merge pull request #30027 from bluca/news
Update syscalls/hwdb/po
2023-11-15 10:17:19 +09:00
Yu Watanabe 921961c3a3 storagetm: use path to device node instead of devpath
To make the generated IDs equivalent when
- sd_device object is not provided,
- sd_device object is provided, but it does not have ID_SERIAL.

Follow-up for abc19a6ffa.

This also fixes missing voidification.

Fixes CID#1524253.
2023-11-14 08:52:40 +01:00
Yu Watanabe aa78d138ed Merge pull request #30005 from poettering/storagetm-plymout
storagetm: plymouth hookup
2023-11-14 02:39:17 +09:00
Yu Watanabe 4cec9b1b17 Merge pull request #30015 from poettering/tpm2-slow-tests
tests: skip slow tpm2 tests if slow tests aren't enabled
2023-11-14 02:38:33 +09:00
Yu Watanabe 4e2df3082d Merge pull request #30010 from poettering/mount-tool-tweakles
mount-tool: trivial tweaklets
2023-11-14 02:38:09 +09:00
Yu Watanabe 175ff7bf0d Merge pull request #30003 from poettering/vendor-model-unify
udev-util: add generic device_get_{vendor,model}_string() helpers
2023-11-14 02:36:08 +09:00
Yu Watanabe 58cde42f65 core: rename MemoryZswapCurrent -> MemoryZSwapCurrent
Follow-up for 26caa66867.
2023-11-13 13:54:56 +01:00
Yu Watanabe 49a6f7c849 Merge pull request #29976 from YHNdnzj/session-by-leader-pidref
logind: switch sessions_by_leader to PidRef
2023-11-13 05:09:47 +09:00
Yu Watanabe 7fd93e5acc Merge pull request #29968 from bluca/executor_selinux_lazy_load
executor: lazily load SELinux
2023-11-13 05:06:44 +09:00
Yu Watanabe 5996cc348c conf-parser: fix argument type of ConfigPerfItemLookup
Prompted by #29972.
2023-11-13 00:46:39 +09:00
Yu Watanabe 62c9beaa2c conf-parser: inline variable declaration 2023-11-13 00:46:34 +09:00
Yu Watanabe 620788da17 TODO: fix typo 2023-11-11 17:58:14 +09:00
Yu Watanabe 49549a458c Merge pull request #29929 from poettering/tty-reset-fixes
pid1: various fixes around TTY resets
2023-11-11 12:44:31 +09:00
Yu Watanabe 7fad66b1a7 Merge pull request #29958 from mrc0mmand/journal-line_max
journal: recalculate line_max when stdout stream state changes
2023-11-11 12:39:57 +09:00
Yu Watanabe 1805e2cb05 test-network: add test case for issue #29979 2023-11-11 03:57:59 +09:00
Yu Watanabe fc4aa64c2d network/dhcp6: skip to check existence of DHCPv6 address when UseAddress=no
Follow-up for 1536b7b2d0 and
5f950e5621.

Fixes #29979.
2023-11-11 03:30:34 +09:00
Yu Watanabe f5e1781a9e network/dhcp6: use link_check_address_ready() at one more place 2023-11-11 03:30:34 +09:00
Yu Watanabe 706cd85937 network/dhcp-pd: use correct flag when DHCPv4 6rd is enabled
Previously, Link.dhcp6_configured flag was unconditionally used even if
the route is configured based on the DHCPv4 protocol.

Follow-up for a27588d4e7 and
e49bad0179.
2023-11-11 03:30:34 +09:00
Yu Watanabe b5f7d1d550 Merge pull request #29937 from yuwata/network-fix-json-format
network: fix json output
2023-11-09 21:47:37 +09:00
Yu Watanabe 0bc649d6b0 Merge pull request #29949 from mrc0mmand/even-more-ntp-followups
busctl: send READY=1 when we become a monitor
2023-11-09 15:08:31 +09:00
Yu Watanabe 6900d90877 Merge pull request #29939 from YHNdnzj/fdopen-independent-mode
basic/fileio: drop O_CREAT in flags passed to fd_reopen
2023-11-09 15:07:11 +09:00
Yu Watanabe 797b237c77 test: use wait-online 2023-11-09 07:16:56 +09:00
Yu Watanabe e1d4613eaa test: prefix network config files with digits 2023-11-09 07:16:56 +09:00
Yu Watanabe 9bb589dc2d networkd-test.py: prefix .network and .netdev files with digits
Otherwise config files generated by systemd-network-generator may
match with the test interfaces.
2023-11-09 07:16:56 +09:00
Yu Watanabe 2e978188cb networkd-test.py: hide default .network files
To make the test works fine with -Ddefault-network=True.
2023-11-09 07:16:56 +09:00
Yu Watanabe 93252bfea7 meson: fix install path of example .network files
It seems that when 'rename' field is set, the path (instead of the
filename) is appended to the 'install_dir'.

Follow-up for 9b7a624267.

Fixes #29925.
2023-11-09 07:16:56 +09:00
Yu Watanabe 425e8065b7 Merge pull request #29932 from yuwata/default-network-cleanups
network: several cleanups for default .network files
2023-11-09 05:15:13 +09:00
Yu Watanabe 3aa47694d1 test-network: verify json format about DHCPv6 client status 2023-11-09 01:31:17 +09:00
Yu Watanabe 37b5051c95 network: fix json generation
When the DHCPv6 client is running in the information requesting mode,
then T1 and T2 are not set.
2023-11-09 01:30:03 +09:00
Yu Watanabe 0fd9bea38e man: fix typo
Follow-up for a9d54de66d.
2023-11-09 00:09:13 +09:00
Yu Watanabe e5188e4f9b network: make 89-ethernet.network match only physical interfaces
For safety. We already add similar condition to a generated one:
c25aa6c8ac
2023-11-08 23:11:45 +09:00
Yu Watanabe f139393dd2 network: use Kind= instead of Driver=
networkd ignores errors in reading driver through ethtool. The kind of
network interface is retrieved through netlink, and networkd checks
checks many failures. So, using Kind= should be safer.

No functional change, just for safety.
2023-11-08 22:59:57 +09:00
Yu Watanabe dd51c4332f resolve/mdns: silently ignore Known-Answers only packets 2023-11-08 22:45:14 +09:00
Yu Watanabe 6f087266e3 resolve/mdns: allow mDNS queries with truncation flag
If the query has many Known-Answers records, then the truncation flag is
set.

Fixes #29168.
2023-11-08 22:45:14 +09:00
Yu Watanabe 614af79cfc resolve: tweak logs about truncation 2023-11-08 22:45:07 +09:00
Yu Watanabe e941da8425 meson: fix install path of example .network files
It seems that when 'rename' field is set, the path (instead of the
filename) is appended to the 'install_dir'.

Follow-up for 9b7a624267.

Fixes #29925.
2023-11-08 21:55:44 +09:00
Yu Watanabe 35dbb8b0d6 meson: disable -Ddefault-network by default
Follow-up for 9b7a624267.

This may break existing setups. Let's disable it by default.
2023-11-08 21:48:30 +09:00
Yu Watanabe 7645e5a813 resolve/mdns: split out mdns_make_dummy_packet()
Then, this fixes the following issues:
- if dns_packet_append_zone() for other transaction is failed with
  EMSGSIZE, the previously added key was not removed,
- if dns_transaction_prepare() for other transaction returns 0, then
  we restated the loop without dropping previously appended keys, which
  might not be necessary any more.
2023-11-08 21:38:54 +09:00
Yu Watanabe 6cfa4fc4ce resolve/mdns: do not append packets without records
Previously, if we have only max_rr cached entries, then an empty packet
is appended.

Prompted by #29168.
2023-11-08 21:38:22 +09:00
Yu Watanabe 905d0ea7b0 sd-dhcp-client,-server: set timestamp based on the time when received a packet
It seems that RFC does not say anything about the timestamp of lease
we should use: time that the client sent a request or received a reply.
In DHCPv6 client and NDisc, we use a timestamp that we receive a packet,
rather than we sent something. So, let's consistently use the same
logic for DHCPv4 client.

By using the logic, we will hopefully not forget to set timestamp again,
which is fixed by 089362976c.
2023-11-08 17:58:51 +09:00
Yu Watanabe a57dd1d13f sd-dhcp-client: move packet size check to dhcp_packet_verify_headers()
No functional change.
2023-11-08 17:54:52 +09:00
Yu Watanabe 7f42c66015 sd-dhcp-client: split out client_verify_message_header()
This is not necessary to be called when a packet is received through the
RAW socket, but should not hurt anything.
2023-11-08 17:54:30 +09:00
Yu Watanabe 9e6d587961 test: set working directory even if it is expected that the command fails
Otherwise, parsing may unexpectedly succeeds but fail to run writing
.network files with permission error.

Follow-up for 6bc5de53e8.
2023-11-08 08:07:27 +01:00
Yu Watanabe d9c4917b9e vmspawn: fix memleak
Fixes CID#1523912.
2023-11-08 07:54:10 +01:00
Yu Watanabe c62345ffc7 tree-wide: fix typo 2023-11-08 14:57:33 +09:00
Yu Watanabe 69f50bf35e sd-dhcp-client: make client_handle_message() propagate critical error
Then, stop client in the caller side.

This also makes
- ignore all errors except for resource errors like OOM when FORCERENEW
  is received,
- trigger assertion when an message received even if the client is
  stopped.

This should not change any functionality. Just refactoring.
2023-11-08 13:03:40 +09:00
Yu Watanabe b2622db0df Merge pull request #29910 from yuwata/rapid-commit
dhcp: about rapid commit
2023-11-08 12:20:17 +09:00
Yu Watanabe b86f60bfb3 network-generator: refuse unexpected trailing strings 2023-11-08 04:29:45 +09:00
Yu Watanabe 816c269e55 network-generator: allow to specify both IPv4 and IPv6 DNS servers
Follow-up for 923599523c.
2023-11-08 04:29:45 +09:00
Yu Watanabe 8ae81a1e00 network-generator: add missing assertions 2023-11-08 04:29:45 +09:00
Yu Watanabe 0b0865f509 network-generator: drop unused family argument 2023-11-08 04:29:45 +09:00
Yu Watanabe 13a462b9d5 network-generator: relax requirement for peer address, route destination, and gateway
No functional changes, as the caller already sets them.
2023-11-08 04:29:45 +09:00
Yu Watanabe 1fa0a4eff7 network: add [DHCPServer] RapidCommit= setting 2023-11-08 02:42:03 +09:00
Yu Watanabe 538ff0a60a sd-dhcp-server: support rapid commit (RFC4039)
https://datatracker.ietf.org/doc/html/rfc4039
2023-11-08 02:39:59 +09:00
Yu Watanabe 089362976c sd-dhcp-client: unconditionally set sd_dhcp_client.request_sent when a packet is sent
If a server replies an ACK for the initial DISCOVER, previously
request_sent was not set, so networkd handle the lease timed out.

Follow-up for 808b65a087.
2023-11-08 02:18:15 +09:00
Yu Watanabe c4efe0e51e sd-dhcp-client: gracefully ignore OFFER with Rapid Commit option
Fixes #29904.
2023-11-07 16:13:54 +01:00
Yu Watanabe d377949085 test-network: test MultiPathRoute= via another interface
Prompted by https://github.com/systemd/systemd/pull/14194#issuecomment-1795489641.
2023-11-06 20:59:49 +00:00
Yu Watanabe 3296b13b26 Merge pull request #29675 from DaanDeMeyer/kernel-install-json
kernel-install: Add --json option for inspect verb
2023-11-07 01:07:03 +09:00
Yu Watanabe eba449fa81 sd-device-monitor: unconditionally increase buffer size by sd_device_monitor_new()
As suggested at https://github.com/systemd/systemd/pull/29872#discussion_r1382932633:
> socket memory is these days accounted to the process that owns a socket,
> hence we shouldn't be too concerned that this might waste memory.
2023-11-06 20:39:51 +09:00
Yu Watanabe 986e182352 network: do not try to set invalid value for IPv6 hop limit 2023-11-06 15:53:25 +09:00
Yu Watanabe 39713b075f network: fix indentation
Follow-up for f141b2c053.
2023-11-06 15:53:01 +09:00
Yu Watanabe 93e583aaba Revert "ndisc: Also set link hoplimit"
This reverts commit 0ba8374bb8.

- link->network->ipv6_hop_limit must not be updated, as it may be used
  by multiple interfaces,
- We may receive multiple RA from multiple routers with different hop
  limit, and we should not make the default hop limit flicking,
- First of all, there is no reason that we need to update the default hop
  limit,
- The original issue should be caused by the hash and compare functions
  for Route object.
2023-11-06 15:33:10 +09:00
Yu Watanabe 4e601b7072 udevadm-trigger: extend receive buffer size
We may trigger huge number of devices and will receive many events.
Let's extend the buffer size, otherwise the buffer may be filled.

Fixes #29863.
2023-11-06 14:50:50 +09:00
Yu Watanabe e423b40d35 tree-wide: fix typo 2023-11-04 11:58:12 +09:00
Yu Watanabe 7682aedb4e sd-journal: make generic_array_bisect_plus_one() take data object
Then, rename it to generic_array_bisect_for_data().
No functional change, just refactoring.
2023-11-04 11:48:20 +09:00
Yu Watanabe a1b8d21fab sd-journal: introduce journal_file_pin_object()
Previously, OBJECT_UNUSED was used for 'pinning' the mmap cache for an
object. But, OBJECT_UNUSED is also used for reading object when type
cannot be determined before read, e.g. when reading the tail object.

Let's introduce another category for pinning mmap cache, and use it when
we want to temporary pin an object.
2023-11-04 11:47:55 +09:00
Yu Watanabe 7a56f6b2b9 mmap-cache: introduce window_matches_by_addr()
It is similar to window_matches(), but checks the mapped address.
Mostly preparation for later commits.
2023-11-04 11:42:19 +09:00
Yu Watanabe 1a25ab663c mmap-cache: introduce enum MMapCacheCategory
Then rename context -> category.

No functional change, just refactoring and modernization.
2023-11-04 11:41:15 +09:00
Yu Watanabe 2ebc9cc867 mmap-cache: drop Context and boolean flags in Window
No functional change, just refactoring.
2023-11-04 11:12:12 +09:00
Yu Watanabe ab8f553d1e sd-journal: rework generic_array_bisect()
- Rename generic_array_bisect_one() -> generic_array_bisect_step(), as there
  is also generic_array_bisect_plus_one(), so the original name is confusing.
- Make generic_array_bisect_step() return TEST_GOTO_NEXT or TEST_GOTO_PREVIOUS
  when the current array does not contain any matching entries.
- Make generic_array_bisect_step() symmetric with respect to the direction
  we are going to, except for the journal corruption handling.
- Make generic_array_bisect_step() gracefully handle journal corruptions,
  so the corruption handling in the caller side can be mostly dropped.
- Especially, when the last entry in an array is corrupted, previously
  we tried to find a valid entry sequentially from the end of the array,
  but now we anyway bisect the array. That should improve performance of
  reading corrupted journal files.
- Return earlier when no entry linked to the chained array (n == 0).
- Add many comments.

No behavior change unless journal is corrupted.
2023-11-04 11:01:30 +09:00
Yu Watanabe f6548f053d sd-journal: drop redundant re-reading of entry array object
This effectively reverts e562f13158.

In the loop of the generic_array_bisect(), the offset of the entry array
object is unchanged, the object is read at the beginning of the loop, and
we do not read any other entry array object. Hence, it is not necessary to
re-read the object every time we use the object.
2023-11-04 10:54:43 +09:00
Yu Watanabe 7636caf5b3 virt: also check if PID1 is in chroot
In PID1, running_in_chroot() is called by safety_checks(), but without
this change, the check did nothing.
2023-11-03 16:05:52 +00:00
Yu Watanabe b75b8e1d02 Merge pull request #29836 from poettering/libiptc-dlopen
make libiptc dep a dlopen() one
2023-11-03 21:15:29 +09:00
Yu Watanabe 45a7ef454e man: mention DHCPv4 Router option is ignored when Classless Static Routes option is received
For #29564.
2023-11-03 10:14:59 +00:00
Yu Watanabe 08752450c7 Update NEWS 2023-11-03 12:02:51 +09:00
Yu Watanabe 6256c65aad meson: /etc/systemd/network is also used by udevd 2023-11-03 12:02:51 +09:00
Yu Watanabe 9b7a624267 network: add meson option to rename .example files on install
Also this renames 80-ethernet.network.example -> 89-ethernet.network.example,
to make it have lower precedence over other default .network files for
Ethernet interfaces.

Closes #29765.
2023-11-03 11:57:46 +09:00
Yu Watanabe 2c4534854a man: mention that network files should be prefixed with number smaller than 70 2023-11-03 11:42:19 +09:00
Yu Watanabe b94f59b9d5 network: make generated configs have higher precedence over default configs
We use 80- for default .network files. So, the generated files from the
kernel command line should have smaller prefix.
2023-11-03 11:42:19 +09:00
Yu Watanabe 71164ee9fe network: disable IPv6AcceptRA= in several default config
Also,
- drop DHCP=no, as it is the default setting,
- enable IPv6SendRA= for wifi access point,
- enable MulticastDNS= for wifi adhoc mode.
2023-11-03 11:41:52 +09:00
Yu Watanabe bae0bd0024 meson: install newly added example .network file
Follow-up for e6ba085398.
2023-11-03 11:27:18 +09:00
Yu Watanabe c57ff6230e NEWS: several updates for networking 2023-11-02 15:36:29 +09:00
Yu Watanabe f5a0831c32 Merge pull request #29817 from YHNdnzj/fchmodat2
Add support for fchmodat2 and use it where appropriate
2023-11-02 04:56:29 +09:00
Yu Watanabe 4314abf6d4 sd-netlink: res_id is 16bit but serial is 32bit
The explicit value here is not so important.
Let's chop off the higher bits.

Fixes the issue reported at
https://github.com/systemd/systemd/pull/29802#issuecomment-1788637950.
2023-11-01 14:02:49 +00:00
Yu Watanabe 498a6de596 dhcp6: enterprise ID is 32bit
Follow-up for 6b44099b3b.

Fixes #29800.
2023-11-01 13:19:59 +00:00
Yu Watanabe 4ef83d9c88 udev: revert workarounds for issues caused by the devlink creation optimization
This reverts the following two commits:
- "udev: decrease devlink priority for encrypted partitions"
  c4521fc17b.
- "udev: decrease devlink priority for iso disks"
  df1dccd255.

These commits are workarounds for issues caused by
331aa7aa15.
With the previous commit, these workarounds are not necessary anymore,
as partitions are always processed later than their whole disk, and
a decrypted volume is also processed later than its backing volume.
2023-11-01 19:47:00 +09:00