Zbigniew Jędrzejewski-Szmek [Tue, 8 Sep 2020 11:18:25 +0000 (13:18 +0200)]
basic/log: make log_{info,warning,...} return void
log_debug still returns 0. I think it is legitimate to use 'return log_debug()' to
return 0. It is different than the other functions, since we often want to supress
errors logged at debug level. This case is quite common in the codebase and
we could use 'return log_debug_errno()' to make the code more consise.
For all other variants, a separate return line is required.
Previous commit changes all the non-conforming instances, now we can make it mandatory.
Zbigniew Jędrzejewski-Szmek [Tue, 8 Sep 2020 10:51:23 +0000 (12:51 +0200)]
tree-wide: correct cases where return log_{error,warning} is used without value
In various cases, we would say 'return log_warning()' or 'return log_error()'. Those
functions return 0 if no error is passed in. For log_warning or log_error this doesn't
make sense, and we generally want to propagate the error. In the few cases where
the error should be ignored, I think it's better to split it in two, and call 'return 0'
on a separate line.
Zbigniew Jędrzejewski-Szmek [Tue, 8 Sep 2020 06:16:33 +0000 (08:16 +0200)]
Merge pull request #16725 from yuwata/network-fix-ndisc-multiple-routers
network: fix NDisc behavior when multiple routers exist
Michal Sekletár [Tue, 1 Sep 2020 10:12:32 +0000 (12:12 +0200)]
core: introduce support for setting NUMAMask= to special "all" value
Fixes #14113
Yu Watanabe [Fri, 14 Aug 2020 08:45:44 +0000 (17:45 +0900)]
network: fix NDisc handling for the case when multiple routers exist
69203fba700ea8d7b0c4f4e3d1e1f809ac4644a1 does not consider the case that
multiple routers exist, and causes #16719.
Fixes #16719.
Yu Watanabe [Fri, 4 Sep 2020 01:56:03 +0000 (10:56 +0900)]
network: expose route_{hash,compare}_func()
Yu Watanabe [Fri, 4 Sep 2020 01:55:40 +0000 (10:55 +0900)]
network: expose address_{hash,compare}_func()
Yu Watanabe [Fri, 14 Aug 2020 08:44:02 +0000 (17:44 +0900)]
util: expose in6_addr_{hash,compare}_func()
Zbigniew Jędrzejewski-Szmek [Sat, 5 Sep 2020 20:04:18 +0000 (22:04 +0200)]
Merge pull request #16928 from poettering/statx-fallback
stat-util: provide single statx() fallback on top of fstatat()
Christian Göttsche [Sat, 5 Sep 2020 15:42:56 +0000 (17:42 +0200)]
selinux: create /run/user/${USERID}/systemd with default context
Christian Göttsche [Sat, 5 Sep 2020 15:49:48 +0000 (17:49 +0200)]
selinux: early exit in mac_selinux_maybe_reload if not initialized
Binaries might not initialize SELinux, e.g. when they normally do not
create files with the SELinux default context.
If they, via an internal libary function, call a _label() function,
mac_selinux_maybe_reload() gets called. Since the SELinux status page
has not been opened, selinux_status_updated() will fail with EINVAL.
This affects particularly test binaries.
Just exit early and avoid confusing debug logs.
George Rawlinson [Sat, 5 Sep 2020 17:57:00 +0000 (05:57 +1200)]
man: fix typo in resolved.conf
Zbigniew Jędrzejewski-Szmek [Sat, 5 Sep 2020 13:55:22 +0000 (15:55 +0200)]
Merge pull request #16951 from yuwata/resolve-follow-ups-for-extra-dns-stub-listener
resolve: follow-ups for extra DNS stub listener
Zbigniew Jędrzejewski-Szmek [Sat, 5 Sep 2020 13:47:37 +0000 (15:47 +0200)]
Merge pull request #16854 from yuwata/sd-bus-error-set-errnofv
sd-bus: rework sd_bus_error_set_errnofv()
Zbigniew Jędrzejewski-Szmek [Sat, 5 Sep 2020 10:06:15 +0000 (12:06 +0200)]
Merge pull request #16957 from poettering/sd-bus-proto-def-move
three unrelated, minor fixes
Lennart Poettering [Fri, 4 Sep 2020 21:54:11 +0000 (23:54 +0200)]
varlink: properly allocate connection event source
Let's make sure we keep a reference to the event source
(Note that this code is currently not used, which is why this was never
used: in all cases we do not add listener fds after the event is
attached, but before. In that case this code is not called.)
Lennart Poettering [Fri, 4 Sep 2020 21:52:39 +0000 (23:52 +0200)]
ptyfwd: don't set prio if event source that might not exist
We support read-only ptyfwd options, and on those the input event source
won't be allocated. Deal with that and don't invoke a function on it
that will then instantly fail.
Lennart Poettering [Fri, 4 Sep 2020 21:49:44 +0000 (23:49 +0200)]
sd-bus: move SD_BUS_MAXIMUM_(SIGNATURE|NAME)_LENGTH to sd-bus-protocol.h
So far we kept all defines directly originating from the spec in
sd-bus-protocol.h, do this for this too.
The precise place doesn't matter much API-wise given that sd-bus.h includes
sd-bus-protocol.h, hence let's just clean this up.
Luca Boccassi [Tue, 1 Sep 2020 16:08:29 +0000 (17:08 +0100)]
core: add [Enable|Disable]UnitFilesWithFlags DBUS methods
The new methods work as the unflavoured ones, but takes flags as a
single uint64_t DBUS parameters instead of different booleans, so
that it can be extended without breaking backward compatibility.
Add new flag to allow adding/removing symlinks in
[/etc|/run]/systemd/system.attached so that portable services
configuration files can be self-contained in those directories, without
affecting the system services directories.
Use the new methods and flags from portablectl --enable.
Useful in case /etc is read-only, with only the portable services
directories being mounted read-write.
Yu Watanabe [Fri, 4 Sep 2020 14:17:49 +0000 (23:17 +0900)]
util: constify the second argument of set_get()
Yu Watanabe [Fri, 4 Sep 2020 14:08:48 +0000 (23:08 +0900)]
resolve: use correct fd for UDP stub listner
Yu Watanabe [Fri, 4 Sep 2020 12:30:37 +0000 (21:30 +0900)]
resolve: do not check sender and destination for packet received by extra DNS stub listner
Yu Watanabe [Fri, 4 Sep 2020 11:52:46 +0000 (20:52 +0900)]
resolve: use sd_event_source_set_io_fd_own() for stub listners
Yu Watanabe [Fri, 4 Sep 2020 07:41:13 +0000 (16:41 +0900)]
resolve: introduce dns_stub_listener_extra_free() and set it as a key destructor
Yu Watanabe [Fri, 4 Sep 2020 07:26:17 +0000 (16:26 +0900)]
resolve: adjust error messages
Yu Watanabe [Fri, 4 Sep 2020 06:22:36 +0000 (15:22 +0900)]
resolve: do not set IPv4 specific options on IPv6 socket
Yu Watanabe [Fri, 4 Sep 2020 06:10:48 +0000 (15:10 +0900)]
resolve: do not set IP_TTL for extra DNS stub listeners
Yu Watanabe [Fri, 4 Sep 2020 14:53:18 +0000 (23:53 +0900)]
missing: add IPV6_FREEBIND
Lennart Poettering [Fri, 4 Sep 2020 13:54:27 +0000 (15:54 +0200)]
Merge pull request #16880 from yuwata/network-dhcp4-cleanups
network: DHCPv4 cleanups
Yu Watanabe [Fri, 4 Sep 2020 06:27:53 +0000 (15:27 +0900)]
util: drop unused socket_addr_port_from_string_auto()
Yu Watanabe [Fri, 4 Sep 2020 06:01:21 +0000 (15:01 +0900)]
resolve: use in_addr_union to store addresses for extra dns stub listeners
Yu Watanabe [Fri, 4 Sep 2020 05:54:03 +0000 (14:54 +0900)]
resolve: fix indentation
Yu Watanabe [Fri, 4 Sep 2020 10:37:50 +0000 (19:37 +0900)]
util: introduce SOCKADDR_LEN() macro
Yu Watanabe [Fri, 4 Sep 2020 06:42:09 +0000 (15:42 +0900)]
test: add tests for in_addr_port_from_string_auto()
Yu Watanabe [Fri, 4 Sep 2020 06:53:50 +0000 (15:53 +0900)]
test: move several tests from test-socket-util.c
Yu Watanabe [Fri, 4 Sep 2020 07:15:29 +0000 (16:15 +0900)]
util: introduce in_addr_port_to_string()
Yu Watanabe [Fri, 4 Sep 2020 07:14:14 +0000 (16:14 +0900)]
util: make in_addr_ifindex_to_string() an alias of in_addr_port_ifindex_name_to_string()
Yu Watanabe [Fri, 4 Sep 2020 04:40:31 +0000 (13:40 +0900)]
util: introduce in_addr_port_from_string_auto()
Yu Watanabe [Fri, 4 Sep 2020 05:29:06 +0000 (14:29 +0900)]
resolve: stop extra stub listners before freeing information about them
Yu Watanabe [Fri, 4 Sep 2020 04:23:39 +0000 (13:23 +0900)]
resolve: set DNS_STUB_LISTENER_YES if no protocol is specified in DNSStubListenExtra=
Yu Watanabe [Fri, 4 Sep 2020 04:21:55 +0000 (13:21 +0900)]
resolve: Manager::dns_stub_listener_mode is not relevant to extra stub listeners
Yu Watanabe [Fri, 4 Sep 2020 04:09:02 +0000 (13:09 +0900)]
resolve: make DnsStubListenerMode bitfield
Yu Watanabe [Fri, 4 Sep 2020 04:01:15 +0000 (13:01 +0900)]
resolve: rename dns_stub_extra_event_source -> event_source
As the name is too redundant.
Yu Watanabe [Fri, 4 Sep 2020 03:58:32 +0000 (12:58 +0900)]
man: update DNSStubListenerExtra=
Zbigniew Jędrzejewski-Szmek [Fri, 4 Sep 2020 10:57:20 +0000 (12:57 +0200)]
Merge pull request #16881 from yuwata/network-routing-policy-rule-cleanups
network: routing policy rule cleanups
Zbigniew Jędrzejewski-Szmek [Fri, 4 Sep 2020 10:21:15 +0000 (12:21 +0200)]
Merge pull request #16952 from yuwata/resolvectl-log-level-follow-ups
resolvectl: update help message
Yu Watanabe [Fri, 4 Sep 2020 03:17:22 +0000 (12:17 +0900)]
test: add tests for sd_bus_error_set_errnof()
Yu Watanabe [Fri, 4 Sep 2020 03:02:46 +0000 (12:02 +0900)]
sd-bus: use _cleanup_free_ macro in sd_bus_error_set_errnofv()
No functional change.
Yu Watanabe [Wed, 26 Aug 2020 13:31:01 +0000 (22:31 +0900)]
network: fixes gateway assignment through DHCPv4
This fixes the following issue:
- If a DHCP lease does not contains router option, then routes with
`Gateway=_dhcp` setting introduce unexpected results.
This also makes several failure paths critical. And adjust warnings when
classless routes are provided.
Yu Watanabe [Fri, 4 Sep 2020 08:03:28 +0000 (17:03 +0900)]
bash-completion: resolvectl: support 'log-level' command
Yu Watanabe [Fri, 4 Sep 2020 07:58:32 +0000 (16:58 +0900)]
resolvectl: add 'log-level' to help message
Follow-up for
df9578498f3f566409fcb71229d9fc99e4ab0568.
Lennart Poettering [Thu, 3 Sep 2020 21:52:27 +0000 (23:52 +0200)]
resolved: ttl/hopcount sockopt is not a boolean
These are integer values, hence specify them as integers, not as
booleans.
Amitanand.Chikorde [Wed, 26 Aug 2020 10:01:49 +0000 (15:31 +0530)]
sd-bus: drop unnecessary free()
As `e->message` here is always NULL.
Yu Watanabe [Fri, 28 Aug 2020 04:58:00 +0000 (13:58 +0900)]
man: mention that 'networkctl reconfigure' does not reload configs
Yu Watanabe [Fri, 28 Aug 2020 04:45:42 +0000 (13:45 +0900)]
network: configure DHCP routes after DHCP address is ready
Yu Watanabe [Thu, 27 Aug 2020 21:54:11 +0000 (06:54 +0900)]
network: dhcp4: reset counter only when the lease address is new
Yu Watanabe [Thu, 27 Aug 2020 21:56:33 +0000 (06:56 +0900)]
sd-ipv4acd: introduce sd_ipv4acd_get_address()
Yu Watanabe [Thu, 27 Aug 2020 21:38:43 +0000 (06:38 +0900)]
network: dhcp4: stop IPv4ACD before assigning new address
Yu Watanabe [Fri, 4 Sep 2020 00:01:03 +0000 (09:01 +0900)]
sd-ipv4acd: do not call callback in sd_ipv4acd_stop() when it is already stopped
Yu Watanabe [Thu, 3 Sep 2020 23:54:21 +0000 (08:54 +0900)]
network: voidify return value of sd_ipv4acd_stop()
Yu Watanabe [Fri, 28 Aug 2020 04:00:25 +0000 (13:00 +0900)]
network: logs about unknown key
Yu Watanabe [Fri, 28 Aug 2020 03:58:49 +0000 (12:58 +0900)]
network: honor already specified family when parsing from= or to= in serialized rule
Yu Watanabe [Fri, 28 Aug 2020 03:53:08 +0000 (12:53 +0900)]
network: do not reallocate buffer
Yu Watanabe [Fri, 28 Aug 2020 03:47:44 +0000 (12:47 +0900)]
network: serialize InvertRule= in [RoutingPolicyRule]
Yu Watanabe [Fri, 28 Aug 2020 03:34:36 +0000 (12:34 +0900)]
network: add whitespace after family= and priority= in serialized routing policy rule
This also makes priority= serialized only when its value is non-zero.
Yu Watanabe [Thu, 3 Sep 2020 23:44:14 +0000 (08:44 +0900)]
network: downgrade error level when the error is ignored
Yu Watanabe [Fri, 28 Aug 2020 03:27:32 +0000 (12:27 +0900)]
network: move routing_policy_rule_read_full_file()
Zbigniew Jędrzejewski-Szmek [Thu, 3 Sep 2020 17:06:05 +0000 (19:06 +0200)]
Merge pull request #16044 from ssahani/resolved-interface
systemd-resolved: allow configurable bind address
Lennart Poettering [Thu, 3 Sep 2020 16:39:28 +0000 (18:39 +0200)]
Merge pull request #16945 from poettering/udev-test-selinux
fix udev-test when used with selinux
Lennart Poettering [Thu, 3 Sep 2020 14:56:47 +0000 (16:56 +0200)]
udev-test: don't mix alloca() and regular C stack allocation in one expression
Lennart Poettering [Thu, 3 Sep 2020 14:56:30 +0000 (16:56 +0200)]
udev-test: use SYNTHETIC_ERRNO() where useful
Lennart Poettering [Thu, 3 Sep 2020 14:56:07 +0000 (16:56 +0200)]
udev-test: use mount_verbose() instead of mount(), to make debugging easier
Lennart Poettering [Thu, 3 Sep 2020 14:53:22 +0000 (16:53 +0200)]
udev-test: make sure we run udev tests with selinux assumed off
This is cleaner that way given that we create our own half-virtualizes
device tree, and really shouldn't pull selinux labelling and access
control into that, we can only lose, in particular as our overmounted
/sys/ actually lacks /sys/fs/selinux.
(This fixes udev test woes introduced by #16821 where suddenly the test
would fail because libselinux assumed selinux was on, but selinuxfs
wasn't actually available)
Lennart Poettering [Tue, 1 Sep 2020 16:42:01 +0000 (18:42 +0200)]
stat-util: provide single fallback implementation of statx()
This simplifies things quite a bit, and is reusable wherever we want to
use statx() later on. Not sure why I didn't do it like this right from
the beginning...
Lennart Poettering [Tue, 1 Sep 2020 16:24:44 +0000 (18:24 +0200)]
stat-util: add new macros for declaring statx variable
Let's deal with the msan initialization issue once for all cases instead
of over and over again.
Lennart Poettering [Thu, 3 Sep 2020 12:57:29 +0000 (14:57 +0200)]
Merge pull request #16915 from poettering/cryptsetup-dlopen
pid1,repart,growfs: make libcryptsetup a dlopen() style dep
Lennart Poettering [Thu, 3 Sep 2020 12:55:08 +0000 (14:55 +0200)]
Merge pull request #16821 from cgzones/selinux_status
selinux: use SELinux status page
Lennart Poettering [Thu, 3 Sep 2020 12:51:02 +0000 (14:51 +0200)]
Merge pull request #16940 from keszybz/socket-enotconn-cleanup
Cleanup socket enotconn handling
Susant Sahani [Sat, 29 Aug 2020 07:12:10 +0000 (07:12 +0000)]
resolve: allow configurable bind address
Glen Whitney [Thu, 3 Sep 2020 00:38:38 +0000 (17:38 -0700)]
hwdb: Add Adesso AKB-805MAC keyboard, mfd by Ortek
afg [Tue, 1 Sep 2020 21:47:49 +0000 (05:47 +0800)]
firstboot: don't create/modify passwd and shadow if not asked
Zbigniew Jędrzejewski-Szmek [Wed, 2 Sep 2020 16:17:14 +0000 (18:17 +0200)]
core/socket: use _cleanup_ to close the connection fd
Removing the gotos would lead to a lot of duplicated code, so I left them
as they were.
Zbigniew Jędrzejewski-Szmek [Wed, 2 Sep 2020 16:04:10 +0000 (18:04 +0200)]
core/socket: fold socket_instantiate_service() into socket_enter_running()
socket_instantiate_service() was doing unit_ref_set(), and the caller was
immediately doing unit_ref_unset(). After we get rid of this, it doesn't seem
worth it to have two functions.
Zbigniew Jędrzejewski-Szmek [Tue, 1 Sep 2020 21:50:01 +0000 (23:50 +0200)]
core/socket: we may get ENOTCONN from socket_instantiate_service()
This means that the connection was aborted before we even got to figure out
what the service name will be. Let's treat this as a non-event and close the
connection fd without any further messages.
Code last changed in
934ef6a5.
Reported-by: Thiago Macieira <thiago.macieira@intel.com>
With the patch:
systemd[1]: foobar.socket: Incoming traffic
systemd[1]: foobar.socket: Got ENOTCONN on incoming socket, assuming aborted connection attempt, ignoring.
...
Also, when we get ENOMEM, don't give the hint about missing unit.
Gibeom Gwon [Wed, 26 Aug 2020 13:56:01 +0000 (22:56 +0900)]
homed: remember the secret even when the for_state is FIXATING_FOR_ACQUIRE
Remember the secret if the for_state is FIXATING_FOR_ACTIVATION or
FIXATING_FOR_ACQUIRE. This fixes login failures when logging in
to an unfixated user.
Lennart Poettering [Mon, 31 Aug 2020 16:22:54 +0000 (18:22 +0200)]
update TODO
Lennart Poettering [Fri, 28 Aug 2020 19:27:45 +0000 (21:27 +0200)]
shared: make libcryptsetup dep dlopen
Let's make libcryptsetup a dlopen() style dep for PID 1 (i.e. for
RootImage= and stuff), systemd-growfs and systemd-repart. (But leave to
be a regulra dep in systemd-cryptsetup, systemd-veritysetup and
systemd-homed since for them the libcryptsetup support is not auxiliary
but pretty much at the core of what they do.)
This should be useful for container images that want systemd in the
payload but don't care for the cryptsetup logic since dm-crypt and stuff
isn't available in containers anyway.
Fixes: #8249
Lennart Poettering [Fri, 28 Aug 2020 19:26:33 +0000 (21:26 +0200)]
shared: rename crypt-util.c → cryptsetup-util.c
"crypt-util.c" is such a generic name, let's avoid that, in particular
as libc's/libcrypt's crypt() function is so generically named too that
one might thing this is about that. Let's hence be more precise, and
make clear that this is about cryptsetup, and nothing else.
We already had cryptsetup-util.[ch] in src/cryptsetup/ doing keyfile
management. To avoid the needless confusion, let's rename that file to
cryptsetup-keyfile.[ch].
Christian Göttsche [Tue, 1 Sep 2020 15:45:11 +0000 (17:45 +0200)]
selinux/systemctl: create unit file with default context on edit
Lennart Poettering [Tue, 1 Sep 2020 18:08:49 +0000 (20:08 +0200)]
import: make sure gnu tar complains on tar files with trailing garbage
By default GNU tar will only read the first archive if multiple archives
are concatenated and ignore the rest. If an archive contains trailing
garbage this will hence not be recognized by tar as error, it simply
stops reading when the first archive is done (which might escalate to
SIGPIPE when invoked via a pipe).
Let's add --ignore-zeros to the tar command line when extracting. This
means:
1) if a tar archive was concatenated (i.e. generated with tar -A) we'll
process it correctly.
2) if a tar archive contains trailing garbage tar will now generate an
error message about it, instead of just throwing EPIPE, which makes
things easier to debug as broken files are not silently processed.
I think it's OK for gnu tar to ignore trailing garbage when dealing with
classic tapes drives, i.e. mediums that do not have a size limit
built-in. However, this is not what we are dealing with: we are dealing
with OS images here, that hopefully someone generated with a clean build
system, that were signed and validated and hence should not contain
trailing garbage. Hence it's better to refuse and complain thant to
silently eat up like for classic tape drives.
Fixes: #16605
Lennart Poettering [Tue, 1 Sep 2020 21:26:50 +0000 (23:26 +0200)]
nspawn: let's make LinkJournal an extended boolean
Let's accept the usual boolean parameters for LinkJournal. It's
confusing otherwise.
Previously we'd accept "no" but not the other values we typically accept
for "false". We'd not accept any values for "true".
With this change we'll accept all true and false values and will do
something somewhat reasonable: any false value is treated like "no"
previously was reated. And any true value is now treated like "auto".
We don't document the new values, since this logic is mostly redundant,
and it's probably better if people consider this an enum rather than a
bool.
Fixes: #16888
Zbigniew Jędrzejewski-Szmek [Wed, 2 Sep 2020 06:55:40 +0000 (08:55 +0200)]
Merge pull request #16882 from weblate/weblate-systemd-master
Translations update from Weblate
Zbigniew Jędrzejewski-Szmek [Wed, 2 Sep 2020 06:12:56 +0000 (08:12 +0200)]
Merge pull request #16853 from poettering/udev-current-tag2
udev: make uevents "sticky"
Lennart Poettering [Tue, 1 Sep 2020 18:29:28 +0000 (20:29 +0200)]
coredump: don't convert s → µs twice
We already append 000000 early on when parsing the cmdline args, let's
not do that a second time.
Fixes: #16919
afg [Tue, 1 Sep 2020 21:20:25 +0000 (05:20 +0800)]
firstboot: fill empty color if ansi_color unavailable from os-release
Susant Sahani [Fri, 28 Aug 2020 10:39:40 +0000 (10:39 +0000)]
shared: Introduce socket_addr_port_from_string_auto
Zbigniew Jędrzejewski-Szmek [Tue, 1 Sep 2020 20:19:52 +0000 (22:19 +0200)]
Merge pull request #16925 from cgzones/selinux_create_label
selinux/core: create several file objects with default SELinux context
Lennart Poettering [Tue, 1 Sep 2020 18:34:22 +0000 (20:34 +0200)]
Merge pull request #16911 from keszybz/userdb-json-invalid-utf8
Deal properly with invalid utf-8 in userdb entries
Zbigniew Jędrzejewski-Szmek [Tue, 1 Sep 2020 17:44:28 +0000 (19:44 +0200)]
Merge pull request #16922 from keszybz/ordered-set-ensure-allocated
Ordered set ensure allocated
Lennart Poettering [Wed, 26 Aug 2020 16:30:52 +0000 (18:30 +0200)]
man: document the new libudev APIs