Zbigniew Jędrzejewski-Szmek [Tue, 20 Oct 2020 08:50:01 +0000 (10:50 +0200)]
resolvectl: wrap the extended status string too
Zbigniew Jędrzejewski-Szmek [Mon, 12 Oct 2020 13:54:57 +0000 (15:54 +0200)]
resolvect: use wrapping for various lists
dump_list() is used for DNS servers, DNS domains, fallback DNS servers.
Zbigniew Jędrzejewski-Szmek [Mon, 12 Oct 2020 11:29:46 +0000 (13:29 +0200)]
format-table: add TABLE_STRV_WRAPPED
The idea is that we have strvs like list of server names or addresses, where
the majority of strings is rather short, but some are long and there can
potentially be many strings. So formattting them either all on one line or all
in separate lines leads to output that is either hard to read or uses way too
many rows. We want to wrap them, but relying on the pager to do the wrapping is
not nice. Normal text has a lot of redundancy, so when the pager wraps a line
in the middle of a word the read can understand what is going on without any
trouble. But for a high-density zero-redundancy text like an IP address it is
much nicer to wrap between words. This also makes c&p easier.
This adds a variant of TABLE_STRV which is wrapped on output (with line breaks
inserted between different strv entries).
The change table_print() is quite ugly. A second pass is added to re-calculate
column widths. Since column size is now "soft", i.e. it can adjust based on
available columns, we need to two passes:
- first we figure out how much space we want
- in the second pass we figure out what the actual wrapped columns
widths will be.
To avoid unnessary work, the second pass is only done when we actually have
wrappable fields.
A test is added in test-format-table.
Zbigniew Jędrzejewski-Szmek [Sun, 11 Oct 2020 14:39:12 +0000 (16:39 +0200)]
format-table: reduce scope of iterator variables
Zbigniew Jędrzejewski-Szmek [Sun, 11 Oct 2020 14:20:27 +0000 (16:20 +0200)]
resolvectl: use compat status string instead of a field-by-field table
The status string is modeled after our --version output: +enabled -disabled equals=more-info
For example:
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=allow-downgrade/supported
Zbigniew Jędrzejewski-Szmek [Sun, 11 Oct 2020 10:19:46 +0000 (12:19 +0200)]
resolvectl: sort domain/nta output
dns list shall not be sorted.
Zbigniew Jędrzejewski-Szmek [Sun, 11 Oct 2020 11:46:53 +0000 (13:46 +0200)]
resolvectl: add the usual typedef for struct link_info/global_info
Also move the struct defintions up in preparation for further changes.
Zbigniew Jędrzejewski-Szmek [Sun, 11 Oct 2020 10:55:10 +0000 (12:55 +0200)]
man: add example of negative trust anchor file
Fixes #17226.
Zbigniew Jędrzejewski-Szmek [Sun, 11 Oct 2020 09:54:18 +0000 (11:54 +0200)]
resolvectl: break nta/domain/dns listings with newlines
We would print the whole string as a single super-long line. Let's nicely
break the text into lines that fit on the screen.
$ COLUMNS=70 build/resolvectl --no-pager nta
Global: home local intranet 23.172.in-addr.arpa lan
18.172.in-addr.arpa 16.172.in-addr.arpa 19.172.in-addr.arpa
25.172.in-addr.arpa 21.172.in-addr.arpa d.f.ip6.arpa
20.172.in-addr.arpa 30.172.in-addr.arpa 17.172.in-addr.arpa
internal 168.192.in-addr.arpa 28.172.in-addr.arpa
22.172.in-addr.arpa 24.172.in-addr.arpa 26.172.in-addr.arpa
corp 10.in-addr.arpa private 29.172.in-addr.arpa test
27.172.in-addr.arpa 31.172.in-addr.arpa
Link 2 (hub0):
Link 4 (enp0s31f6):
Link 5 (wlp4s0):
Link 7 (virbr0): adsfasdfasdfasd.com 21.172.in-addr.arpa lan j b
a.com home d.f.ip6.arpa b.com local 16.172.in-addr.arpa
19.172.in-addr.arpa 18.172.in-addr.arpa 25.172.in-addr.arpa
20.172.in-addr.arpa k i h 23.172.in-addr.arpa
168.192.in-addr.arpa d g intranet 17.172.in-addr.arpa c e.com
30.172.in-addr.arpa a f d.com e internal
Link 8 (virbr0-nic):
Link 9 (vnet0):
Link 10 (vb-rawhide):
Link 15 (wwp0s20f0u2i12):
Lennart Poettering [Fri, 9 Oct 2020 13:56:43 +0000 (15:56 +0200)]
Merge pull request #17286 from benzea/benzea/xdg-autostart-improvements
XDG autostart improvements
mirabilos [Fri, 9 Oct 2020 06:56:57 +0000 (08:56 +0200)]
missing_syscall: fixup syscall numbers for x32 vs. amd64
Lennart Poettering [Fri, 9 Oct 2020 09:56:15 +0000 (11:56 +0200)]
Merge pull request #17289 from keszybz/two-coverity-fixes
Two coverity-inspired fixes
Benjamin Berg [Thu, 8 Oct 2020 13:58:37 +0000 (15:58 +0200)]
xdg-autostart: Ignore more common XDG Desktop Entry fields
It makes sense to ignore all the common fields that are expected and
that we can safely ignore. Note that it is fine to ignore URL as we will
already warn about the type= being wrong in that case.
Closes: #17276
Benjamin Berg [Thu, 8 Oct 2020 13:58:08 +0000 (15:58 +0200)]
xdg-autostart: Add support for Path= in XDG Desktop File
This sets the working directory of the application.
Lennart Poettering [Thu, 8 Oct 2020 16:40:35 +0000 (18:40 +0200)]
ratelimit: add ratelimit_configured() helper
This helper alone doesn't make too much sense, but it's preparatory work
for #17274, and I guess it can't hurt to land it early, it does make the
ratelimit code a tiny bit prettier after all.
Lennart Poettering [Thu, 8 Oct 2020 16:50:36 +0000 (18:50 +0200)]
sd-event: check return value of syscals directly, avoid redundant variable assignment
And while we are at it, fix one incorrect error propagation.
Zbigniew Jędrzejewski-Szmek [Fri, 9 Oct 2020 06:14:54 +0000 (08:14 +0200)]
networkd: add assert to appease coverity
The code was OK, but not obviously so. Let's add an assert to help a
human or nonhuman reader figure it out.
Coverity CID#
1433224.
Zbigniew Jędrzejewski-Szmek [Fri, 9 Oct 2020 06:04:25 +0000 (08:04 +0200)]
systemctl: fix reversed arguments in function call
This is confusing, but had no effect because the arguments were consistently
switched.
Coverity CID#
1433223.
Lennart Poettering [Thu, 8 Oct 2020 08:27:30 +0000 (10:27 +0200)]
missing-syscall: fix copypasta
As noticed by @mbiebl:
https://github.com/systemd/systemd/commit/
5134e18eedc30bfe5397ed31f94903d984a60cfc#r43033443
Michael Biebl [Wed, 7 Oct 2020 15:44:05 +0000 (17:44 +0200)]
basic/missing_syscall: fix syscall numbers for mips*
Thanks Christian Brauner @brauner
Fixes: #17261
Lennart Poettering [Thu, 8 Oct 2020 08:17:29 +0000 (10:17 +0200)]
Merge pull request #17279 from poettering/systemctl-split-up
systemctl: split huge .c file into smaller bits
Yu Watanabe [Thu, 8 Oct 2020 06:55:35 +0000 (15:55 +0900)]
Merge pull request #17271 from yuwata/network-route-improve-multipath-route-support
network: improve multipath route support
Lennart Poettering [Wed, 7 Oct 2020 09:27:56 +0000 (11:27 +0200)]
systemctl: split up humungous systemctl.c file
This is just some refactoring: shifting around of code, not change in
codeflow.
This splits up the way too huge systemctl.c in multiple more easily
digestable files. It roughly follows the rule that each family of verbs
gets its own .c/.h file pair, and so do all the compat executable names
we support. Plus three extra files for sysv compat (which existed before
already, but I renamed slightly, to get the systemctl- prefix lik
everything else), a -util file with generic stuff everything uses, and a
-logind file with everything that talks directly to logind instead of
PID1.
systemctl is still a bit too complex for my taste, but I think this way
itc omes in a more digestable bits at least.
No change of behaviour, just reshuffling of some code.
Lennart Poettering [Wed, 7 Oct 2020 19:56:41 +0000 (21:56 +0200)]
systemctl: move compare_unit_info() to bus-unit-util.[ch]
It's an auxiliary function to the UnitInfo structures, and very generic.
Let's hence move it over to the other code operating with UnitInfo, even
if it's not used by code outside of systemctl (yet).
Lennart Poettering [Wed, 7 Oct 2020 14:38:29 +0000 (16:38 +0200)]
pretty-print: don't abbreviate needlessly in user-facing string
Lennart Poettering [Wed, 7 Oct 2020 14:38:07 +0000 (16:38 +0200)]
basic: include stddef.h since we use NULL in header
Yu Watanabe [Wed, 7 Oct 2020 11:42:54 +0000 (13:42 +0200)]
network: introduce IPV4_ADDRESS_FMT_STR macro
This also moves ADDRESS_FMT_VAL() macro to networkd-address.h, and
renames it to IPV4_ADDRESS_FMT_VAL().
Yu Watanabe [Wed, 7 Oct 2020 11:39:47 +0000 (13:39 +0200)]
network: make Gateway= in [Route] section accept an empty string
Yu Watanabe [Wed, 7 Oct 2020 11:34:00 +0000 (13:34 +0200)]
network: introduce Gateway=_dhcp4 and _dhcp6, and deprecate "_dhcp"
Fixes #17249.
Yu Watanabe [Wed, 7 Oct 2020 11:02:00 +0000 (13:02 +0200)]
test-network: do not fail when multiple ipv6 default gateways are configured
When multiple ipv6 default gateways are set, kernel seems to merge them
into a multipath route.
Yu Watanabe [Wed, 7 Oct 2020 10:39:59 +0000 (19:39 +0900)]
util: make local_gateways() support RT_VIA and RT_MULTIPATH
Then, `networkctl status` correctly shows gateways.
Yu Watanabe [Wed, 7 Oct 2020 05:25:11 +0000 (14:25 +0900)]
network: manage multipath routes separately
Yu Watanabe [Wed, 7 Oct 2020 05:24:08 +0000 (14:24 +0900)]
sd-netlink: introduce sd_netlink_message_read_data()
Yu Watanabe [Wed, 7 Oct 2020 04:00:45 +0000 (13:00 +0900)]
sd-netlink: introduce rtattr_read_nexthop()
Yu Watanabe [Wed, 7 Oct 2020 02:06:27 +0000 (11:06 +0900)]
network: free Route object when route_remove() fails
When route_remove() succeeds, the Route object will be freed later by
manager_rtnl_process_route().
Yu Watanabe [Wed, 7 Oct 2020 02:01:02 +0000 (11:01 +0900)]
network: constify arguments
Yu Watanabe [Thu, 13 Aug 2020 16:52:19 +0000 (01:52 +0900)]
test-network: add a test case for IPv4 route with IPv6 gateway
Renaud Métrich [Fri, 2 Oct 2020 15:30:35 +0000 (17:30 +0200)]
unit: don't emit PropertiesChanged signal if adding a dependency to a unit is a no-op
Yu Watanabe [Wed, 7 Oct 2020 01:04:13 +0000 (10:04 +0900)]
network: support IPv4 route with IPv6 gateway
Yu Watanabe [Thu, 13 Aug 2020 16:50:45 +0000 (01:50 +0900)]
sd-netlink: fix type of RTA_VIA
Yu Watanabe [Wed, 7 Oct 2020 00:41:52 +0000 (09:41 +0900)]
network: also manage routes without RTA_OIF attribute
Yu Watanabe [Thu, 13 Aug 2020 15:04:00 +0000 (00:04 +0900)]
network: ignore Scope= for IPv6 routes as it will not be used
Yu Watanabe [Thu, 13 Aug 2020 10:01:23 +0000 (19:01 +0900)]
test-network: drop meaningless Scope= settings in the config
Yu Watanabe [Thu, 13 Aug 2020 09:55:06 +0000 (18:55 +0900)]
network: set default priority for IPv6 routes
See inet6_rtm_newroute() in kernel's net/ipv6/route.c.
Yu Watanabe [Wed, 7 Oct 2020 13:21:12 +0000 (15:21 +0200)]
basic: import linux/ipv6_route.h
Yu Watanabe [Wed, 7 Oct 2020 13:20:37 +0000 (15:20 +0200)]
meson: add missing files
Lennart Poettering [Wed, 7 Oct 2020 09:30:32 +0000 (11:30 +0200)]
systemctl: drop unsused variable original_stdout_is_tty
Unused since
de9a8fe18e0168b65ae50b6dde2865f647fc92a2.
Lennart Poettering [Wed, 7 Oct 2020 12:11:46 +0000 (14:11 +0200)]
update TODO
Lennart Poettering [Wed, 7 Oct 2020 10:55:56 +0000 (12:55 +0200)]
Merge pull request #17231 from poettering/event-source-exit-on-failure
sd-event: add "exit-on-failure" feature for event source
Zbigniew Jędrzejewski-Szmek [Tue, 6 Oct 2020 11:59:25 +0000 (13:59 +0200)]
Document some reasonable DNS servers in the example config file
We have an option to set the fallback list, so we don't know what the contents
are. It may in fact be empty. Let's add some examples to make it easy for a user
stranded without any DNS to fill in something that would work. As a bonus, this
also gives names to the entries we provide by default.
(I added google and cloudflare because that's what we have currently, and quad9
because it seems to be a good privacy-concious and fast choice and was requested
in #12499. As a minimum, things we should include should be well-known global
services with a documented privacy policy and both IPv4 and IPv6 support and
decent response times.)
Lennart Poettering [Wed, 7 Oct 2020 07:45:58 +0000 (09:45 +0200)]
Merge pull request #17238 from keszybz/man-tmp-noexec
Say that noexec should not be used for /tmp
Lennart Poettering [Fri, 2 Oct 2020 08:00:00 +0000 (10:00 +0200)]
udev: make use of NULL callback in IO handlers
Lennart Poettering [Fri, 2 Oct 2020 07:51:36 +0000 (09:51 +0200)]
sd-event: support callback=NULL in IO/child/inotify/defer event sources, too
Also, document this functionality more prominently, including with a
reference from sd_event_exit().
This is mostly to make things complete, as previously we supported NULL
callbacks only in _add_time() and _add_signal(). However, I think this
makes snese for IO event sources too (think: when some fd such as a pipe
end sees SIGHUP or so, exit), as well as defer or post event sources (i.e. exit
once we got nothing else to do). This also adds support for inotify
event sources, simply to complete things (I can't see the immediate use,
but maybe someone else comes up with it).
The only event source type that doesn't allow callback=NULL now are exit
callbacks, but for them they make little sense, as the event loop is
exiting then anyway.
Lennart Poettering [Fri, 2 Oct 2020 07:13:37 +0000 (09:13 +0200)]
udev-util: make use of sd-event's NULL callback support
Lennart Poettering [Fri, 2 Oct 2020 07:13:17 +0000 (09:13 +0200)]
test: add test that validates that PTR_TO_INT(INT_TO_PTR()) covers whole int range
Lennart Poettering [Thu, 1 Oct 2020 20:21:05 +0000 (22:21 +0200)]
socket-proxy: port to new sd_event_source_set_exit_on_failure() API
Lennart Poettering [Thu, 1 Oct 2020 20:20:42 +0000 (22:20 +0200)]
socket-proxy: close correct fd, log at right log level
Lennart Poettering [Fri, 2 Oct 2020 08:14:44 +0000 (10:14 +0200)]
man: add docs for sd_event_source_set_exit_on_failure()
Lennart Poettering [Thu, 1 Oct 2020 20:17:31 +0000 (22:17 +0200)]
sd-event: optionally, if an event source fails, exit the event loop
Currently, if an event source callback returns an error, we'll disable
the event source and continue. This adds a per-event source flag that if
turned on goes further: the event loop is also exited, propagating the
error code.
This is inspired by some patterns repeatedly seen in #15206.
The idea is that event sources that server the "primary" function of a
program are marked like this, so that if they fail the failure is
instantly propagated and terminates the program.
Yu Watanabe [Tue, 6 Oct 2020 22:42:40 +0000 (07:42 +0900)]
Merge pull request #17240 from yuwata/network-cleanup
network: several cleanups and fix IPv4DAD and IP Masqurade
Marco Wang [Tue, 6 Oct 2020 17:07:55 +0000 (01:07 +0800)]
boot/efi: Explicitly specify void in parameter list
Functions that accept no arguments should be
explicitly declared a void parameter in their parameter list.
Signed-off-by: Marco Wang <m.aesophor@gmail.com>
Yu Watanabe [Mon, 5 Oct 2020 20:25:01 +0000 (22:25 +0200)]
test-network: also remove IPv6 rules
Yu Watanabe [Mon, 5 Oct 2020 19:53:35 +0000 (21:53 +0200)]
test-network: add a missing netdev in the list
Yu Watanabe [Mon, 5 Oct 2020 19:51:29 +0000 (21:51 +0200)]
test-network: disable RA in test_sriov
We usually disable IPv6AcceptRA= if the test does not require any
dynamic address configuration, as it makes slightly slow down the test.
C.f.
491b79aeac323909e8cef60ba6e91e27fd731679.
Yu Watanabe [Mon, 5 Oct 2020 19:47:44 +0000 (21:47 +0200)]
test-network: add missing file in the list
Yu Watanabe [Sun, 4 Oct 2020 10:54:56 +0000 (19:54 +0900)]
test-network: drop duplicated address
Yu Watanabe [Tue, 6 Oct 2020 18:21:59 +0000 (03:21 +0900)]
network: rename network_verify_xxx() -> network_drop_invalid_xxx()
As 'verify' implies a boolean result.
Yu Watanabe [Sun, 4 Oct 2020 02:06:23 +0000 (11:06 +0900)]
network: fix masquerade setting logic
Previously, address_establish() took Address object stored in Network
object. And address_release() took Address object stored in Link
object. Thus, address_release() always did nothing.
Yu Watanabe [Sun, 4 Oct 2020 01:57:03 +0000 (10:57 +0900)]
network: always use RT_SCOPE_HOST for IPv4 loopback addresses
For IPv6 case, use RT_SCOPE_HOST only when scope is not explicitly specified.
Yu Watanabe [Sun, 4 Oct 2020 00:27:42 +0000 (09:27 +0900)]
network: update MAC address in IPv4 ACD clients
When the MAC address of a link is updated, an address on the link may
be under checking address duplication. Or, (currently such code is not
implemented yet, but) address duplication check may be restarted later.
For that case, the IPv4 ACD clients must use the new updated MAC address.
Yu Watanabe [Sun, 4 Oct 2020 00:14:15 +0000 (09:14 +0900)]
network: configure IPv4 DAD per link address
Previously, IPv4 DAD is configured in each Address object stored in
Network object. If a .network file matches multipe links, then it causes
an assertion. To prevent it, now IPv4 DAD is configured in each Address
object belogs to Link object.
Yu Watanabe [Tue, 6 Oct 2020 17:57:54 +0000 (02:57 +0900)]
network: constify one argument
Yu Watanabe [Sat, 3 Oct 2020 23:47:42 +0000 (08:47 +0900)]
network: introduce address_copy()
Yu Watanabe [Sat, 3 Oct 2020 23:27:14 +0000 (08:27 +0900)]
network: do not update Address::flags in address_configure()
Yu Watanabe [Sat, 3 Oct 2020 23:14:27 +0000 (08:14 +0900)]
network: fix indentation
Yu Watanabe [Sat, 3 Oct 2020 22:43:41 +0000 (07:43 +0900)]
network: use sd_event stored in Manager
Yu Watanabe [Sat, 3 Oct 2020 22:37:22 +0000 (07:37 +0900)]
network: check feature is enabled in xxx_configure()
Yu Watanabe [Sat, 3 Oct 2020 21:50:55 +0000 (06:50 +0900)]
network: move link_enumerate_ipv6_tentative_addresses()
Yu Watanabe [Sat, 3 Oct 2020 21:37:12 +0000 (06:37 +0900)]
network: drop unused function
Yu Watanabe [Sat, 3 Oct 2020 21:25:44 +0000 (06:25 +0900)]
network: move sysctl related functions to networkd-sysctl.c
Yu Watanabe [Fri, 2 Oct 2020 11:55:18 +0000 (20:55 +0900)]
network: introduce radv_update_mac()
Yu Watanabe [Fri, 2 Oct 2020 11:41:41 +0000 (20:41 +0900)]
network: introduce dhcp6_update_mac()
Yu Watanabe [Fri, 2 Oct 2020 11:29:57 +0000 (20:29 +0900)]
network: introduce dhcp4_update_mac()
Yu Watanabe [Fri, 2 Oct 2020 11:25:11 +0000 (20:25 +0900)]
network: introduce ipv4ll_update_mac()
Yu Watanabe [Fri, 2 Oct 2020 11:15:44 +0000 (20:15 +0900)]
network: introduce link_serialize_dhcp6_client()
Yu Watanabe [Fri, 2 Oct 2020 09:24:07 +0000 (18:24 +0900)]
network: introduce link_serialize_ipv4ll()
Yu Watanabe [Fri, 2 Oct 2020 09:14:25 +0000 (18:14 +0900)]
network: introduce link_deserialize_ipv4ll()
Yu Watanabe [Fri, 2 Oct 2020 09:07:32 +0000 (18:07 +0900)]
network: introduce link_deserialize_dhcp4()
Yu Watanabe [Fri, 2 Oct 2020 08:53:18 +0000 (17:53 +0900)]
network: introduce network_verify_sr_iov()
Yu Watanabe [Fri, 2 Oct 2020 08:51:14 +0000 (17:51 +0900)]
network: move link_configure_sr_iov()
Yu Watanabe [Fri, 2 Oct 2020 08:48:59 +0000 (17:48 +0900)]
network: introduce network_verify_traffic_control()
Yu Watanabe [Fri, 2 Oct 2020 08:45:37 +0000 (17:45 +0900)]
network: move link_configure_traffic_control()
Yu Watanabe [Fri, 2 Oct 2020 08:37:54 +0000 (17:37 +0900)]
network: merge link_set_bridge_vlan() and br_vlan_configure()
Yu Watanabe [Fri, 2 Oct 2020 08:03:36 +0000 (17:03 +0900)]
network: move DUID related functions
Yu Watanabe [Fri, 2 Oct 2020 07:39:45 +0000 (16:39 +0900)]
network: move link_radv_enabled()
Yu Watanabe [Fri, 2 Oct 2020 07:35:54 +0000 (16:35 +0900)]
network: move link_dhcp4_server_enabled()
Yu Watanabe [Fri, 2 Oct 2020 07:30:23 +0000 (16:30 +0900)]
network: move link_ipv6_accept_ra_enabled()
Yu Watanabe [Fri, 2 Oct 2020 07:23:28 +0000 (16:23 +0900)]
network: unify link_ipv{4,6}_forward_enabled()
Yu Watanabe [Fri, 2 Oct 2020 07:09:25 +0000 (16:09 +0900)]
network: unify link_dhcp{4,6}_enabled()
Yu Watanabe [Fri, 2 Oct 2020 06:48:01 +0000 (15:48 +0900)]
network: move link_get_xxx_route_table()