Commit Graph
100 Commits
Author SHA1 Message Date
Yu Watanabe 1cca93f7f3 systemctl: fix log message when glob patterns passed to disable command and friends
Fixes #32599.
2024-05-01 17:13:10 +09:00
Yu Watanabe 9d3d6c1e07 core/exec-credential: update comment 2024-05-01 15:58:20 +09:00
Yu Watanabe 4e494e6aac tree-wise: several cleanups for logging
- drop unnecessary SYNTHETIC_ERRNO() when the logger does not propagate
  error code,
- drop unnecessary '%m' in error message when the error code is
  specified with SYNTHETIC_ERRNO(),
- add missing full stop at the end of log message,
- use RET_GATHER(),
- add missing ", ignoring.",
- upeercase the first letter, etc., etc...
2024-05-01 04:41:06 +09:00
Yu Watanabe 8719a65003 test-journal-flush: use archived journal if possible
Workaround for #32436.

The test may fail if the journal is vacuumed or rotated during the test is running.
Let's use the newest archive file for safety.
2024-04-30 10:50:43 +02:00
Yu Watanabe 90db1582a9 run/run: fix invocation ID handling
Fixes a regression introduced by 8157cc0e3e.
2024-04-25 10:58:56 +02:00
Yu Watanabe d11ba681ab network/radv: use sd_ndisc_prefix and friends to manage prefixes and so on
No functional change, just refactoring.
2024-04-25 09:45:02 +09:00
Yu Watanabe 29d9672eb2 network/radv: rename pref64Prefix -> Prefix64
Also this made several coding style cleanups.
2024-04-25 09:44:57 +09:00
Yu Watanabe 30eab38020 network/route: use our definitions of route preference
Including linux/icmpv6.h easily trigger conflicts when another header
includes netinet/icmp6.h. Let's drop the dependency and use our
definition of the same values.
2024-04-25 09:23:31 +09:00
Yu Watanabe 68ee2ba1ee Merge pull request #32464 from YHNdnzj/journal-object-invocation-id
journal: small fixes for OBJECT_SYSTEMD_INVOCATION_ID
2024-04-25 06:40:45 +09:00
Yu Watanabe d3a4b78b03 Merge pull request #32424 from yuwata/network-radv-cleanups
network/radv: further cleanups
2024-04-24 17:51:47 +09:00
Yu Watanabe 6fe51dc50c network/radv: merge two boolean flags for prefix into one 2024-04-24 12:26:25 +09:00
Yu Watanabe c7c56724a5 sd-radv: use in6_addr_prefix_intersect() 2024-04-24 12:22:05 +09:00
Yu Watanabe 21ae0b4b3c in-addr-util: introduce in{4,6}_addr_prefix_intersect() 2024-04-24 12:22:05 +09:00
Yu Watanabe 9dc2503539 sd-radv: allow to send multiple routes or prefix64 that have intersection with others
I cannot find any RFC that states we should not send multiple route
prefix or pref64 options that have intersection with others.
Moreover, each route prefix option has preference field, thus, user may
want to send e.g. a prefix with the normal preference, and another sub
prefix with the high preference. Previously, such configuration was
prohibited. Let's allow that now.
2024-04-24 12:22:05 +09:00
Yu Watanabe 96dd66eddf sd-radv: send RA on update in caller side
As the caller may want to update multiple prefixes and friends.
Let's not automatically announce on update in library side.

Currently, only prefix is updated during running. Hence, this does not
change any effective behavior.
2024-04-24 12:22:05 +09:00
Yu Watanabe 956709a28f Merge pull request #32438 from YHNdnzj/taint-cleanup
core/manager: clean up taint strings
2024-04-24 11:44:06 +09:00
Yu Watanabe bd0ec61ae3 journal: do not rotate unrelated journal files when full or corrupted
When we fail to add an entry to a journal file, typically when the file
is full or corrupted, it is not necessary to rotate other journal files.

Not only that's unnecessary, rotating all journal files allows
unprivileged users to wipe system or other user's journals by writing
many journal entries to their own user journal file.

Let's rotate all journal files only when
- it is really requested by a privileged user (e.g. by journalctl --rotate), or
- the system time jumps backwards.
And, otherwise rotate only the journal file we are currently writing.
2024-04-23 15:13:05 +02:00
Yu Watanabe c6aadfdd32 ukify: swap the ordering of config search paths
Let's follow our usual ordering.

Follow-up for a05fa30f88.
2024-04-22 20:38:16 +02:00
Yu Watanabe a05381d58b network/radv: drop unnecessary conditions
sd_radv_set_xyz() will handle invalid values gracefully.
2024-04-23 02:06:33 +09:00
Yu Watanabe c6ffb8789c network/radv: warn about non-zero preference with zero lifetime
Note that the misconfiguration will be handled gracefully. So it is not
necessary to adjust value here. Let's only warn about that.
2024-04-23 02:05:41 +09:00
Yu Watanabe efe96c34a0 network/radv: verify [IPv6Prefix] section or friends in network_adjust_radv()
Previously, network_drop_invalid_pref64_prefixes() was never called.
This also fixes that.
2024-04-23 02:04:18 +09:00
Yu Watanabe 9e4b40f26a man: fix typo
Follow-up for 403492793a.
2024-04-23 01:42:11 +09:00
Yu Watanabe 6bd3102e3e man: fix typo
Follow-up for fef46ffb5b.
2024-04-23 01:42:11 +09:00
Yu Watanabe 2fa480592d sd-event: fix fd leak when fd is owned by IO event source
When an IO event source owns relevant fd, replacing with a new fd leaks
the previously assigned fd.
===
sd_event_add_io(event, &s, fd, ...);
sd_event_source_set_io_fd_own(s, true);
sd_event_source_set_io_fd(s, new_fd);  <-- The previous fd is not closed.
sd_event_source_unref(s);  <-- new_fd is closed as expected.
===

Without the change, valgrind reports the leak:
==998589==
==998589== FILE DESCRIPTORS: 4 open (3 std) at exit.
==998589== Open file descriptor 4:
==998589==    at 0x4F119AB: pipe2 (in /usr/lib64/libc.so.6)
==998589==    by 0x408830: test_sd_event_source_set_io_fd (test-event.c:862)
==998589==    by 0x403302: run_test_table (tests.h:171)
==998589==    by 0x408E31: main (test-event.c:935)
==998589==
==998589==
==998589== HEAP SUMMARY:
==998589==     in use at exit: 0 bytes in 0 blocks
==998589==   total heap usage: 33,305 allocs, 33,305 frees, 1,283,581 bytes allocated
==998589==
==998589== All heap blocks were freed -- no leaks are possible
==998589==
==998589== For lists of detected and suppressed errors, rerun with: -s
==998589== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
2024-04-22 18:30:12 +08:00
Yu Watanabe 4f52944054 man: fix typo
Follow-ups for 418f2dc755.
2024-04-22 18:44:48 +09:00
Yu Watanabe 0fe4a1c870 test-network: add test for [IPv6SendRA] ReachableTimeSec= and RetransmitSec= 2024-04-22 18:42:56 +09:00
Yu Watanabe 5d8b72e1e0 man: slightly rephrase RetransmitSec= setting 2024-04-22 18:42:46 +09:00
Yu Watanabe 59d475ba40 network/radv: introduce ReachableTimeSec= setting
To make the reachable time in the RA header sent by networkd
configurable.
2024-04-22 18:41:37 +09:00
Yu Watanabe bc50700c7e sd-radv: allow to configure reachable time in RA header 2024-04-22 18:40:10 +09:00
Yu Watanabe cb7e892c22 sd-journal: downgrade log message "Unused data (entry_offset==0)"
This happens when journal is rotated after a data is written but before
an entry that linked to the data is not written yet.
This is neither data corruption, nor program error. Let's downgrade the
log level.

Closes #32153.
2024-04-20 13:27:37 +02:00
Yu Watanabe f0297ea097 test: add test case for sd_journal_{get,seek,test}_cursor()
For issue #31516.
2024-04-20 13:26:57 +02:00
Yu Watanabe 4a7cd0caad sd-event: fix sd_event_source_get_inotify_path()
Follow-ups for 74c4231ce5.

Previously, the path is obtained from the fd, but it is closed in
sd_event_loop() to unpin the filesystem.
So, let's save the path when the event source is created, and make
sd_event_source_get_inotify_path() simply read it.
2024-04-20 11:14:32 +02:00
Yu Watanabe 201f76287f network/radv: sd-radv allows to update MAC address without stopping 2024-04-20 14:59:27 +09:00
Yu Watanabe 1fea917a1b sd-radv: use sd_radv_is_running()
This also drops several unnecessary conditions for checking sd-radv is running
or not in setting options, e.g. home agent or mac address.
2024-04-20 14:59:27 +09:00
Yu Watanabe 89d7f069d3 sd-radv: shorten enumerated type definition 2024-04-20 14:59:27 +09:00
Yu Watanabe d51377ac42 test-network: add test for global UseDomains= setting 2024-04-20 12:01:53 +09:00
Yu Watanabe 418f2dc755 network: introduce network- and protocol-independent default for UseDomains=
Follow-up for fb57300743.

Prompted by #32273.
2024-04-20 12:01:53 +09:00
Yu Watanabe d5f24a0ea9 sd-event,sd-journal: fix error handling of inotify_add_watch_fd()
Fixes a bug in 97ef539169 and
858749f731.
2024-04-19 11:10:55 +02:00
Yu Watanabe 74c4231ce5 sd-event: introduce sd_event_source_get_inotify_path()
This may be useful when there are multiple inotify event sources exist.
Without this, users need to manage the event sources and paths.
2024-04-19 14:23:11 +09:00
Yu Watanabe fc6ec43c02 man: drop spurious version info for error code
Follow-up for 87fe0a6960.
2024-04-19 14:23:08 +09:00
Yu Watanabe c1ab4458f2 sd-event: rename argument for storing result 2024-04-19 13:59:26 +09:00
Yu Watanabe ff5b9aeeda Merge pull request #32340 from YHNdnzj/wait-for-unit-cleanup
bus-wait-for-units: some cleanup
2024-04-19 12:36:48 +09:00
Yu Watanabe 2a1e890943 sd-radv: reset timer on sending unsolicited RA
Addresses https://github.com/systemd/systemd/pull/32267#discussion_r1567078807.
2024-04-19 12:05:41 +09:00
Yu Watanabe 16e4dce6e8 sd-radv: expose sd_radv_send()
To allow library users manually send RA.
Currently, this is not used, but will be used later.
2024-04-19 12:04:58 +09:00
Yu Watanabe 8276dd9ef2 Merge pull request #32290 from yuwata/network-conf-parser-cleanups
network,nspawn: several cleanups for conf-parsers
2024-04-19 11:53:22 +09:00
Yu Watanabe ba5dc3afad sd-radv: set router preference gracefully
Rather than refusing to set non-zero preference, when lifetime is zero,
let's handle that gracefully on send.
2024-04-19 11:44:59 +09:00
Yu Watanabe 03401969d4 sd-radv: allow to modify RA header elements without stopping sd-radv
This also makes too large retransmit time handled gracefully,
as even if a too large value is specified, usec_to_be32_msec() in
radv_send_router() will handle it gracefully anyway.
Note, networkd still refuses such invalid values. Hence, this does not
change any effective behavior.
2024-04-19 11:44:59 +09:00
Yu Watanabe f72e851fd3 conf-parser: move config_parse_timezone() to conf-parser.[ch]
Even though it is currently only used by networkd, the parser itself
is quite generic. Let's move it to the shared library.
2024-04-19 10:23:01 +09:00
Yu Watanabe 6d06b76710 nspawn: rename config_parse_timezone() -> config_parse_timezone_mode()
The parser does not parse timezone, but timezone mode. Let's rename the
parser to more specific name.
2024-04-19 10:23:01 +09:00
Yu Watanabe 760c2724a3 nspawn: align tables 2024-04-19 10:23:00 +09:00
Yu Watanabe d12fb2bc7b network: introduce link_get_use_ntp()
No functional change, just refactoring.
2024-04-19 10:23:00 +09:00
Yu Watanabe 8763e48342 network: move NTP related conf parsers to networkd-ntp.[ch]
No functional change, just refactoring.
2024-04-19 10:23:00 +09:00
Yu Watanabe 9646ffe2ca network: introduce link_get_use_dns()
No functional change, just refactoring.
2024-04-19 10:23:00 +09:00
Yu Watanabe 7a169cb40f network: introduce link_get_use_domains()
No functional change, just refactoring.
2024-04-19 10:23:00 +09:00
Yu Watanabe 54bb2c0e61 network: move DNS related conf parsers to networkd-dns.[ch]
No functional change, just refactoring.
2024-04-19 10:23:00 +09:00
Yu Watanabe 78f5c649e2 network: rename DHCPUseDomains -> UseDomains
As it is also used for NDisc.
2024-04-19 10:23:00 +09:00
Yu Watanabe 5e485e1aa2 udev: fix assignment of ret_truncated
Follow-ups for 089bef6631.
2024-04-18 08:25:03 +02:00
Yu Watanabe 955d5012e0 blockdev-util: fix typo
Follow-up for 33ff155957.
2024-04-18 13:08:14 +09:00
Yu Watanabe f846002fa2 Merge pull request #32192 from yuwata/part-scan
blockdev-util: fix detection of partscan
2024-04-18 11:38:48 +09:00
Yu Watanabe d2a0ef6073 Merge pull request #32249 from CodethinkLabs/vmspawn/predicatable_tap_names
vmspawn: generate predicatable TAP device names and MAC addresses
2024-04-18 10:26:07 +09:00
Yu Watanabe 33ff155957 blockdev-util: also read 'ext_range' sysattr to check if the partscan is enabled
The 'capability' sysattr was deprecated by
https://github.com/torvalds/linux/commit/e81cd5a983bb35dabd38ee472cf3fea1c63e0f23 (v6.3).
2024-04-18 09:48:26 +09:00
Yu Watanabe 705c418f20 sd-device: introduce device_get_sysattr_unsigned_full() 2024-04-18 09:46:57 +09:00
Yu Watanabe 87fe0a6960 man: fix wrong version info (#31949)
Fixes #31920.
2024-04-18 09:45:51 +09:00
Yu Watanabe 3b4eeccd27 test-network: add test case of RS sent by the same interface 2024-04-18 09:40:23 +09:00
Yu Watanabe 45c2bbbaea test-network: introduce check_networkd_log() helper function 2024-04-18 09:40:23 +09:00
Yu Watanabe 864c7980c0 test-network: drop trailing spaces
Follow-up for fb57300743.
2024-04-18 09:40:23 +09:00
Yu Watanabe 769f9744b7 network/ndisc: disable Neighbor discovery client if RADV is enabled
Running both sd-ndisc and sd-radv should be mostly a misconfiguration,
but may not. So, let's only disable sd-ndisc by default when sd-radv is
enabled, but allow when both are explicitly requested.
2024-04-18 09:40:23 +09:00
Yu Watanabe 50ba4e401a sd-radv: refuse packet from the same interface
Prompted by https://github.com/systemd/systemd/pull/32267#discussion_r1566721306.
2024-04-18 09:40:23 +09:00
Yu Watanabe 258729a3b8 Merge pull request #32308 from yuwata/sd-ndisc-disable-timer-on-recv
sd-ndisc: disable one more timer event source
2024-04-18 09:28:16 +09:00
Yu Watanabe 52fb945cb7 Merge pull request #32318 from YHNdnzj/skip-leading-char
journal-gatewayd: use skip_leading_chars
2024-04-18 06:18:09 +09:00
Yu Watanabe d723363a86 string-util: use special_glyph() at one more place
No functional change, just refactoring.
2024-04-17 17:03:49 +08:00
Yu Watanabe 54a4ffc077 fuzz-ndisc-rs: also test packets with sd-radv
Addresses https://github.com/systemd/systemd/pull/32267#discussion_r1566715787.

Suggested-by: Evgeny Vereshchagin <evvers@ya.ru>
2024-04-17 11:12:42 +03:00
Yu Watanabe 88382e8dab test: fix typo
Follow-up for 236634c82c.
2024-04-17 13:29:39 +09:00
Yu Watanabe 238ed432c3 sd-ndisc: improve debugging logs 2024-04-17 13:23:44 +09:00
Yu Watanabe 31db4c1bd5 sd-ndisc: disable one more timer event source
Otherwise, even if we have already received RA, timeout callback will be
called. Currently, networkd mostly does nothing on timeout, hence should
not change any effective behavior.

Follow-up for e7cb80474d.
2024-04-17 13:23:44 +09:00
Yu Watanabe e27f2ad6be Merge pull request #32300 from mrc0mmand/assorted-tweaks
test: split TEST-50-DISSECT into smaller parts
2024-04-17 11:52:30 +09:00
Yu Watanabe 2153347506 Merge pull request #32303 from CodethinkLabs/push_down_disk_partitioning
test-64-udev-storage: Push disk partitioning into the testsuite itself
2024-04-17 11:49:23 +09:00
Yu Watanabe 78d5bad2f5 Merge pull request #32294 from yuwata/network-generator-creds
network-generator: also load drop-ins for networkd.conf from credentials
2024-04-16 16:42:59 +09:00
Yu Watanabe 30d10a08be Merge pull request #32297 from yuwata/networkctl-cat-without-args
networkctl: allow to call 'networkctl cat' without arguments
2024-04-16 16:42:46 +09:00
Yu Watanabe e188243d1f network: fix use of wrong flag
Fixes a bug introduced by 86a66e9b95 (v255).
2024-04-16 14:17:43 +09:00
Yu Watanabe 9c202ba2e2 test: add test case for 'networkctl cat' without arguments 2024-04-16 13:31:14 +09:00
Yu Watanabe 78281bd53a networkctl: allow to call 'networkctl cat' without arguments
Then, show networkd.conf and its drop-ins.
2024-04-16 13:31:14 +09:00
Yu Watanabe 38b4eb228a man: add missing drop-in directory 2024-04-16 13:00:49 +09:00
Yu Watanabe 9a4a8fbe48 test: add test case for network.conf.* credential 2024-04-16 12:45:08 +09:00
Yu Watanabe e12e16e9f7 network-generator: also copy drop-ins for networkd.conf from credential
Follow-up for 1a30285590.
2024-04-16 12:45:08 +09:00
Yu Watanabe 41a4657615 NEWS: fix typo 2024-04-16 12:21:36 +09:00
Yu Watanabe 11fc03dfff Merge pull request #32103 from yuwata/udev-load-credentials
udev: load udev rules from credentials
2024-04-16 11:45:22 +09:00
Yu Watanabe 69628e3b3b sd-radv: drop unnecessary argument
The argument always has the same value.
2024-04-16 11:18:33 +09:00
Yu Watanabe 19f3cc86a0 sd-radv: set only basic information on stop
There are many possible reasons to stop the service;
tentative reboot of the service or the system, the router may be
revoked, and so on.
And, each situations, the availability of the previously announced
options e.g. prefixes, DNSSL and so on is not clear.
So, let's announce only the clear information, that is, the router
lifetime is zero. which indicates that the router will be invalidated
(regardless tentative or not).
2024-04-16 11:18:33 +09:00
Yu Watanabe 0b7b75eea7 Merge pull request #32267 from yuwata/sd-ndisc-router-solicit
sd-radv: introduce sd_ndisc_router_solicit and use it
2024-04-16 11:18:07 +09:00
Yu Watanabe a3e4edd1af test: add test for systemd-udev-load-credentials.service 2024-04-16 10:35:13 +09:00
Yu Watanabe cc2bcbf605 sd-radv: use ICMP6Packet and sd_ndisc_router_solicit
Then, sd-radv can reject invalid Router Solicit messages, e.g. that have
invalid options.

No effective functional change, just refactoring.
2024-04-16 09:59:52 +09:00
Yu Watanabe 8c1f24fb95 sd-radv: introduce sd_ndisc_router_solicit
It is not used in this stage, but will be used later in sd-radv.
2024-04-16 09:59:48 +09:00
Yu Watanabe 5700e755a9 units: introduce systemd-udev-load-credentials.service 2024-04-16 09:45:43 +09:00
Yu Watanabe 51be364bbb udevadm-control: add --load-credentials option
When specified, credentials udev.conf.* and udev.rules.* are copied to
the corresponding directories.
2024-04-16 09:45:25 +09:00
Yu Watanabe 7b3048358b udevadm-control: split out send_control_commands()
No functional change, just refactoring and preparation for later
commits.
2024-04-16 09:42:20 +09:00
Yu Watanabe b2800ec597 udevadm-control: check if control command really specified
Previously, 'udevadm control' only checked the number of the arguments.
So, if only `--timeout` is specified, it spuriously did nothing and succeeded.
This makes the command request at least one control command.
2024-04-16 09:42:20 +09:00
Yu Watanabe 6c15a28454 creds-util: move pick_up_credentials() from network-generator
The function is quite general, and can be used at other places.
Let's move to our shared library.
2024-04-16 09:42:20 +09:00
Yu Watanabe a40e495847 network-generator: rename NETWORKD_UNIT_... -> NETWORK_UNIT_...
As .link files are used by systemd-udevd, rather than systemd-networkd.

Also, this makes it ends with '/', to follow our recent coding style.
2024-04-16 09:42:20 +09:00
Yu Watanabe e2f0876ecd dissect: refuse to use diskseq if ID_IGNORE_DISKSEQ=1 is specified
Follow-up for 1a81ddef00.
2024-04-15 16:50:45 +02:00