Yu Watanabe [Wed, 16 Dec 2020 15:53:01 +0000 (00:53 +0900)]
tree-wide: fix typo
Yu Watanabe [Wed, 16 Dec 2020 15:55:49 +0000 (00:55 +0900)]
Merge pull request #17859 from keszybz/hostnamed-export-hostname-origin-and-simplify-logic
Export hostname origin and simplify logic in hostamed
Susant Sahani [Wed, 16 Dec 2020 10:58:46 +0000 (11:58 +0100)]
sd-netlink: routing policy rule port to fib_rule_hdr
Lennart Poettering [Wed, 28 Oct 2020 12:46:26 +0000 (13:46 +0100)]
resolved: always take a timestamp when first seeing a packet
This is later useful if we want to adjust the TTLs of packets we want to
propagate to clients.
Dan Streetman [Tue, 15 Dec 2020 22:59:12 +0000 (17:59 -0500)]
sd-dhcp-client: fix renew/rebind timeout calculation to avoid infinite loop
unfortunately I missed adding the timeout to 'now' which results in
an endless loop of renewal timeouts.
Fixes:
3a23834d6b0da391c1ba9cb79a7d7deea7125f4b
Zbigniew Jędrzejewski-Szmek [Fri, 4 Dec 2020 18:40:34 +0000 (19:40 +0100)]
hostnamed,shared/hostname-setup: expose the origin of the current hostname
In hostnamed this is exposed as a dbus property, and in the logs in both
places.
This is of interest to network management software and such: if the fallback
hostname is used, it's not as useful as the real configured thing. Right now
various programs try to guess the source of hostname by looking at the string.
E.g. "localhost" is assumed to be not the real hostname, but "fedora" is. Any
such attempts are bound to fail, because we cannot distinguish "fedora" (a
fallback value set by a distro), from "fedora" (received from reverse dns),
from "fedora" read from /etc/hostname.
/run/systemd/fallback-hostname is written with the fallback hostname when
either pid1 or hostnamed sets the kernel hostname to the fallback value. Why
remember the fallback value and not the transient hostname in /run/hostname
instead?
We have three hostname types: "static", "transient", fallback".
– Distinguishing "static" is easy: the hostname that is set matches what
is in /etc/hostname.
– Distingiushing "transient" and "fallback" is not easy. And the
"transient" hostname may be set outside of pid1+hostnamed. In particular,
it may be set by container manager, some non-systemd tool in the initramfs,
or even by a direct call. All those mechanisms count as "transient". Trying
to get those cases to write /run/hostname is futile. It is much easier to
isolate the "fallback" case which is mostly under our control.
And since the file is only used as a flag to mark the hostname as fallback,
it can be hidden inside of our /run/systemd directory.
For https://bugzilla.redhat.com/show_bug.cgi?id=
1892235.
Zbigniew Jędrzejewski-Szmek [Fri, 4 Dec 2020 18:56:49 +0000 (19:56 +0100)]
hostnamed: stop discriminating against "localhost" in /etc/hostname
We would sometimes ignore localhost-style names in /etc/hostname. That is
brittle. If the user configured some hostname, it's most likely because they
want to use that as the hostname. If they don't want to use such a hostname,
they should just not create the config. Everything becomes simples if we just
use the configured hostname as-is.
This behaviour seems to have been a workaround for Anaconda installer and other
tools writing out /etc/hostname with the default of "localhost.localdomain".
Anaconda PR to stop doing that: https://github.com/rhinstaller/anaconda/pull/3040.
That might have been useful as a work-around for other programs misbehaving if
/etc/hostname was not present, but nowadays it's not useful because systemd
mostly controls the hostname and it is perfectly happy without that file.
Apart from making things simpler, this allows users to set a hostname like
"localhost" and have it honoured, if such a whim strikes them.
Zbigniew Jędrzejewski-Szmek [Sat, 12 Dec 2020 12:34:48 +0000 (13:34 +0100)]
hostnamed: improve message about static hostname
Changed static hostname to 'n/a' is not very nice.
Zbigniew Jędrzejewski-Szmek [Fri, 4 Dec 2020 18:40:46 +0000 (19:40 +0100)]
hostnamed: minor style cleanups
Zbigniew Jędrzejewski-Szmek [Fri, 4 Dec 2020 18:17:45 +0000 (19:17 +0100)]
hostnamed: when hostname is set to existing value, suppress notifications
When the hostname is set through network config or such, let's
optimize things a bit by suppressing the logs and dbus notifications.
Zbigniew Jędrzejewski-Szmek [Fri, 11 Dec 2020 15:52:30 +0000 (16:52 +0100)]
shared/hostname-setup: leave the terminator byte alone
gethostname(3) says it's unspecified whether the string is properly terminated
when the hostname is too long. We created a buffer with one extra byte, and it
seems the intent was to let that byte serve as terminator even if we get an
unterminated string from gethostname().
Zbigniew Jędrzejewski-Szmek [Fri, 4 Dec 2020 17:45:23 +0000 (18:45 +0100)]
shared/hostname-setup: add mode where we check what would be set, without doing
This allows the 'unsafe' mark to be removed from the test.
Zbigniew Jędrzejewski-Szmek [Fri, 4 Dec 2020 17:39:23 +0000 (18:39 +0100)]
Move hostname setup logic to new shared/hostname-setup.[ch]
No functional change, just moving a bunch of things around. Before
we needed a rather complicated setup to test hostname_setup(), because
the code was in src/core/. When things are moved to src/shared/
we can just test it as any function.
The test is still "unsafe" because hostname_setup() may modify the
hostname.
Zbigniew Jędrzejewski-Szmek [Fri, 4 Dec 2020 16:35:22 +0000 (17:35 +0100)]
hostnamed: fix return value
Zbigniew Jędrzejewski-Szmek [Fri, 4 Dec 2020 14:16:54 +0000 (15:16 +0100)]
hostnamed: expose the fallback-hostname setting as a const dbus property
Various users want to know what the fallback hostname is. Since it was made
configurable in
8146c32b9264a6915d467a5cab1a24311fbede7e, we didn't expose this
nicely.
Zbigniew Jędrzejewski-Szmek [Fri, 4 Dec 2020 14:16:24 +0000 (15:16 +0100)]
man/hostnamectl,hostaned,hostname1: adjust the docs to match reality
The semantics were significantly changed in
c779a44222161155c039a7fd2fd304c006590ac7
("hostnamed: Fix the way that static and transient host names interact", Feb. 2014),
but when the dbus api documentation was imported much later, it wasn't properly
adjusted to describe those new semantics.
34293dfafd2a81d80727938199769906dab321bd which added systemd.hostname= also
added new behaviour.
Let's ove various bits and pieces around so that they are in more appropriate
places. Drop recommendations to set the hostname for DHCP or mDNS purposes.
Nowadays we expect tools that want to expose some different hostname to the
outside to manage that internally without affecting visible state. Also drop
mentions of DHCP or mDNS directly setting the hostname, since nowadays network
management software is expected to (and does) go through hostnamed.
Also, add a high-level description of semantics. It glosses over the details of
handling of localhost-style names. Later commits will remove this special handling
anyway.
Michal Fabik [Mon, 14 Dec 2020 14:44:36 +0000 (15:44 +0100)]
coredumpctl: Add --debugger-args= option
This commit adds the possibility to pass command line options to the
debugger invoked with coredumpctl debug.
Resolves: #9905
Yu Watanabe [Wed, 16 Dec 2020 03:07:46 +0000 (12:07 +0900)]
Merge pull request #17968 from yuwata/purge-libudev
udev: do not link with libudev
Susant Sahani [Tue, 15 Dec 2020 04:00:17 +0000 (05:00 +0100)]
network: Allow to configure interface promiscuous mode
Christian Ehrhardt [Tue, 15 Dec 2020 11:05:14 +0000 (12:05 +0100)]
test: use modern qemu numa arguments
Upgrading to qemu 5.2 breaks TEST-36-NUMAPOLICY like:
qemu-system-x86_64: total memory for NUMA nodes (0x0) should
equal RAM size (0x20000000)
Use the new (as in >=2014) form of memdev in test 36:
-object memory-backend-ram,id=mem0,size=512M -numa node,memdev=mem0,nodeid=0
Since some target systems are as old as qemu 1.5.3 (CentOS7) but the new
kind to specify was added in qemu 2.1 this needs to add version parsing and
add the argument only when qemu is >=5.2.
Fixes #17986.
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Lennart Poettering [Tue, 15 Dec 2020 20:14:01 +0000 (21:14 +0100)]
Merge pull request #17967 from poettering/connect-user-bus
add support for "systemctl --user --machine=foobar@.host" for connecting to user bus of user "foobar"
d032747 [Tue, 15 Dec 2020 09:40:06 +0000 (10:40 +0100)]
busctl: add a timestamp to the output of the busctl monitor command
Yu Watanabe [Tue, 15 Dec 2020 20:05:06 +0000 (05:05 +0900)]
Merge pull request #17908 from ddstreet/dhcpv4_rfc2131_intervals
Fix dhcpv4 renew/rebind intervals to match rfc2131
Yu Watanabe [Mon, 14 Dec 2020 13:06:18 +0000 (22:06 +0900)]
udev: drop license boilerplate
Yu Watanabe [Mon, 14 Dec 2020 13:05:18 +0000 (22:05 +0900)]
rules: drop broken links
Yu Watanabe [Mon, 14 Dec 2020 11:41:32 +0000 (20:41 +0900)]
meson: do not link with libudev
Yu Watanabe [Mon, 14 Dec 2020 08:13:48 +0000 (17:13 +0900)]
udev: drop unnecessary libudev-util.h inclusions
Yu Watanabe [Mon, 14 Dec 2020 09:25:27 +0000 (18:25 +0900)]
udevadm: drop udev_queue
Yu Watanabe [Mon, 14 Dec 2020 09:20:18 +0000 (18:20 +0900)]
udev: introduce udev_queue_is_empty() and udev_queue_init()
Yu Watanabe [Mon, 14 Dec 2020 08:52:20 +0000 (17:52 +0900)]
libudev: fix indentation
Yu Watanabe [Mon, 14 Dec 2020 08:03:15 +0000 (17:03 +0900)]
libudev: drop unnecessary headers from libudev-util.c
Yu Watanabe [Mon, 14 Dec 2020 07:59:37 +0000 (16:59 +0900)]
udev: use encode_devnode_name() instead of udev_util_encode_string()
As udev_util_encode_string() is a simple wrapper of
encode_devnode_name().
Yu Watanabe [Mon, 14 Dec 2020 07:45:12 +0000 (16:45 +0900)]
udev: rename UTIL_LINE_SIZE -> UDEV_LINE_SIZE and friends
This also moves them to udev-util.h
Yu Watanabe [Mon, 14 Dec 2020 07:40:10 +0000 (16:40 +0900)]
udev: move util_resolve_subsys_kernel() to udev-util.c
Yu Watanabe [Mon, 14 Dec 2020 07:26:13 +0000 (16:26 +0900)]
udev: move util_replace_chars() to udev-util.c
Yu Watanabe [Mon, 14 Dec 2020 07:17:19 +0000 (16:17 +0900)]
udev: move util_path_encode() and rename it to escape_path()
Yu Watanabe [Mon, 14 Dec 2020 07:11:51 +0000 (16:11 +0900)]
udev: move util_replace_whitespace() to udev-util.c
shenyangyang4 [Thu, 10 Dec 2020 11:44:31 +0000 (06:44 -0500)]
journalctl: don't skip the entries that have the same seqnum
These two judgement can't judge that two entries are repeating fully.
So i think seqnum is needed to make full judgement.
Lennart Poettering [Mon, 14 Dec 2020 15:36:00 +0000 (16:36 +0100)]
bus-util: improve logging when we can't connect to the bus
Previously, we'd already have explicit logging for the case where
$XDG_RUNTIME_DIR is not set. Let's also add some explicit logging for
the EPERM/ACCESS case. Let's also in both cases suggest the
--machine=<user>@.host syntax.
And while we are at it, let's remove side-effects from the macro.
By checking for both the EPERM/EACCES case and the $XDG_RUNTIME_DIR case
we will now catch both the cases where people use "su" to issue a
"systemctl --user" operation, and those where they (more correctly, but
still not good enough) call "su -".
Fixes: #17901
Lennart Poettering [Mon, 14 Dec 2020 12:23:31 +0000 (13:23 +0100)]
stdio-bridge: add support for --system and --user
So far, the bridge always acted as if "--system" was used, i.e. would
unconditionally connect to the system bus. Let's add "--user" too, to
connect to the users session bus.
This is mostly for completeness' sake.
I wanted to use this when making sd-bus's ability to connect to other
user's D-Bus busses work, but it didn't exist so far. In the interest of
keeping things compatible the implementation in sd-bus will not use the
new "--user" switch, and instead manually construct the right bus path
via "--path=", but we still should add the proper switches, as
preparation for a brighter future, one day.
Lennart Poettering [Mon, 14 Dec 2020 12:23:00 +0000 (13:23 +0100)]
man: document new ability to connect to user of container
Lennart Poettering [Mon, 14 Dec 2020 12:21:58 +0000 (13:21 +0100)]
sd-bus: add API for connecting to a specific user's user bus of a specific container
This is unfortunately harder to implement than it sounds. The user's bus
is bound a to the user's lifecycle after all (i.e. only exists as long
as the user has at least one PAM session), and the path dynamically (at
least theoretically, in practice it's going to be the same always)
generated via $XDG_RUNTIME_DIR in /run/.
To fix this properly, we'll thus go through PAM before connecting to a
user bus. Which is hard since we cannot just link against libpam in the
container, since the container might have been compiled entirely
differently. So our way out is to use systemd-run from outside, which
invokes a transient unit that does PAM from outside, doing so via D-Bus.
Inside the transient unit we then invoke systemd-stdio-bridge which
forwards D-Bus from the user bus to us. The systemd-stdio-bridge makes
up the PAM session and thus we can sure tht the bus exists at least as
long as the bus connection is kept.
Or so say this differently: if you use "systemctl -M lennart@foobar"
now, the bus connection works like this:
1. sd-bus on the host forks off:
systemd-run -M foobar -PGq --wait -pUser=lennart -pPAMName=login systemd-stdio-bridge
2. systemd-run gets a connection to the "foobar" container's
system bus, and invokes the "systemd-stdio-bridge" binary as
transient service inside a PAM session for the user "lennart"
3. The systemd-stdio-bridge then proxies our D-Bus traffic to
the user bus.
sd-bus (on host) → systemd-run (on host) → systemd-stdio-bridge (in container)
Complicated? Well, to some point yes, but otoh it's actually nice in
various other ways, primarily as it makes the -H and -M codepaths more
alike. In the -H case (i.e. connect to remote host via SSH) a very
similar three steps are used. The only difference is that instead of
"systemd-run" the "ssh" binary is used to invoke the stdio bridge in a
PAM session of some other system. Thus we get similar implementation and
isolation for similar operations.
Fixes: #14580
Lennart Poettering [Mon, 14 Dec 2020 12:20:28 +0000 (13:20 +0100)]
sd-bus: 'ret' parameter to sd_bus_query_sender_creds() is not optional, check for it
Lennart Poettering [Mon, 14 Dec 2020 12:16:39 +0000 (13:16 +0100)]
sd-bus: make credential acquisition more graceful
So far when asked for augmented bus credentials and the process was
already gone we'd fail fatally. Let's make this graceful instead, and
never allow augmenting fail due to PID having vanished — unless the
augmenting is the explicit and only purpose of the requested operation.
This should be safe as clients have to explicitly query the acquired
creds anyway and handle if they couldn't be acquired. Moreover we
already handle permission problems gracefully, thus clients must be
ready to deal with missing creds.
This is useful to make selinux authorization work for short-lived client
proceses. PReviously we'd augment creds to have more info to log about
(the selinux decision would not be based on augmented data however,
because that'd be unsafe), and would fail if we couldn't get it. Now,
we'll try to acquire the data, but if we cannot acquire it, we'll still
do the selinux check, except that logging will be more limited.
Lennart Poettering [Fri, 11 Dec 2020 15:44:04 +0000 (16:44 +0100)]
firstboot: clean-up the copied hostname, not argv[] directly, as that's ugly
Lennart Poettering [Fri, 11 Dec 2020 15:43:39 +0000 (16:43 +0100)]
hostname-setup: clarify that failures reading /etc/hostname are ignored
Lennart Poettering [Fri, 11 Dec 2020 15:40:45 +0000 (16:40 +0100)]
hostname-util: flagsify hostname_is_valid(), drop machine_name_is_valid()
Let's clean up hostname_is_valid() a bit: let's turn the second boolean
argument into a more explanatory flags field, and add a flag that
accepts the special name ".host" as valid. This is useful for the
container logic, where the special hostname ".host" refers to the "root
container", i.e. the host system itself, and can be specified at various
places.
let's also get rid of machine_name_is_valid(). It was just an alias,
which is confusing and even more so now that we have the flags param.
Lennart Poettering [Fri, 11 Dec 2020 15:26:04 +0000 (16:26 +0100)]
hostname-util: explain what 'LDH' is
Lennart Poettering [Fri, 11 Dec 2020 15:25:12 +0000 (16:25 +0100)]
logs-show: drop redundant validation of machine name
The immediately following container_get_leader() call validate the name
anyway, no need to twice exactly the same way twice immediately after
each other.
Lennart Poettering [Fri, 11 Dec 2020 11:04:21 +0000 (12:04 +0100)]
machine: drop really old kdbus left-over
The "x-machine-kernel" dbus address has been removed a long time ago,
hence don't generate it either.
Lennart Poettering [Fri, 11 Dec 2020 11:04:11 +0000 (12:04 +0100)]
sd-bus: use SOCK_CLOEXEC on one more socket
Gaurav [Tue, 15 Dec 2020 10:11:46 +0000 (15:41 +0530)]
Fix review comments in added debug log.
Gaurav [Tue, 15 Dec 2020 08:45:43 +0000 (14:15 +0530)]
Fix build warning.
Gaurav [Tue, 15 Dec 2020 07:28:52 +0000 (12:58 +0530)]
Handle escape characters in interface name
Updated the patch as per review comments.
Gaurav [Fri, 4 Dec 2020 11:15:15 +0000 (16:45 +0530)]
Detect special character in dbus interface name
Added debug log to detect special character in dbus interface names.
Helps to detect a case mentioned in https://github.com/systemd/systemd/issues/14636
Fabian Affolter [Sun, 13 Dec 2020 14:36:01 +0000 (15:36 +0100)]
Translated using Weblate (German)
Currently translated at 61.4% (115 of 187 strings)
Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/de/
Translation: systemd/master
Ondrej Mosnacek [Mon, 14 Dec 2020 15:36:27 +0000 (16:36 +0100)]
resolved: create stub-resolv.conf symlink with correct security label
Use symlink_atomic_label() instead of symlink_atomic() as the symlink
may need a different label than the parent directory.
Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
Yu Watanabe [Tue, 15 Dec 2020 03:07:30 +0000 (12:07 +0900)]
Merge pull request #17977 from yuwata/namespace-mount-procfs-follow-up
core/namespace: do not ignore non-EPERM mount error
Andrew Balmos [Fri, 11 Dec 2020 03:15:24 +0000 (22:15 -0500)]
efi: Only use arm flags if supported
Support gcc 8 on arm
Yu Watanabe [Tue, 15 Dec 2020 03:05:45 +0000 (12:05 +0900)]
Merge pull request #17936 from keszybz/more-nss-logging
Add debug logging for varlink
Susant Sahani [Thu, 10 Dec 2020 18:54:19 +0000 (19:54 +0100)]
timesync: Make delaying attempts to contact servers configurable
```
❯ ssh sus@xx.xx.xx.xx
Last login: Sat Nov 14 17:32:08 2020 from 10.104.45.138
17:36:19 up 0 min, 0 users, load average: 0.00, 0.00, 0.00
> systemd-analyze blame
Bootup is not yet finished (org.freedesktop.systemd1.Manager.FinishTimestampMonotonic=0).
Please try again later.
Hint: Use 'systemctl list-jobs' to see active jobs
> systemd-analyze blame
43.954s systemd-time-wait-sync.service
1.969s systemd-networkd-wait-online.service
1.559s cloud-init-local.service
1.039s cloud-init.service
414ms cloud-final.service
387ms dracut-initqueue.service
382ms initrd-switch-root.service
380ms cloud-config.service
198ms systemd-journal-flush.service
136ms systemd-udev-trigger.service
115ms initrd-parse-etc.service
97ms systemd-timesyncd.service
84ms systemd-journald.service
```
After made it configurable and set to 5s
```
❯ ssh sus@xx.xx.xx.xx
Last login: Sat Nov 14 18:41:42 2020 from 10.104.45.138
18:42:36 up 0 min, 0 users, load average: 0.16, 0.03, 0.01
> systemd-analyze blame
10.450s systemd-time-wait-sync.service
8.303s systemd-networkd-wait-online.service
1.621s cloud-init-local.service
1.068s cloud-init.service
```
Dan Streetman [Wed, 9 Dec 2020 20:24:09 +0000 (15:24 -0500)]
test-network: increase wait_online timeout to handle longer dhcpv4 transient timeout
Previous commits changed the dhcpv4 retransmission algorithm to be
slightly slower, changing the amount of time it takes to notify
systemd-networkd that the dhcpv4 configuration has (transiently)
failed from around 14 second up to 28 seconds.
Since the test_dhcp_client_with_ipv4ll_without_dhcp_server test
configures an interface to use dhcpv4 without any operating dhcpv4
server running, it must increase the amount of time it waits for
the test interface to reach degraded state.
Dan Streetman [Wed, 9 Dec 2020 19:32:06 +0000 (14:32 -0500)]
sd-dhcp-client: correct retransmission timeout to match RFC
This changes the retransmission timeout algorithm for requests
other than RENEW and REBIND. Previously, the retransmission timeout
started at 2 seconds, then doubling each retransmission up to a max
of 64 seconds. This is changed to match what RFC2131 section 4.1 describes,
which skips the initial 2 second timeout and starts with a 4 second timeout
instead. Note that -1 to +1 seconds of random 'fuzz' is added to each
timeout, in previous and current behavior.
This change is therefore slightly slower than the previous behavior in
attempting retransmissions when no server response is received, since the
first transmission times out in 4 seconds instead of 2.
Since TRANSIENT_FAILURE_ATTEMPTS is set to 3, the previous length of time
before a transient failure was reported back to systemd-networkd was
2 + 4 + 8 = 14 seconds, plus, on average, 3 seconds of random 'fuzz' for
a transient failure timeout between 11 and 17 seconds. Now, since the
first timeout starts at 4, the transient failure will be reported at
4 + 8 + 16 = 28 seconds, again plus 3 random seconds for a transient
failure timeout between 25 and 31 seconds.
Additionally, if MaxAttempts= is set, it will take slightly longer to
reach than with previous behavior.
Dan Streetman [Tue, 8 Dec 2020 20:40:10 +0000 (15:40 -0500)]
sd-dhcp-client: correct dhcpv4 renew/rebind retransmit timeouts
Use the request timeout algorithm specified in RFC2131 section 4.4.5 for
handling timed out RENEW and REBIND requests.
This changes behavior, as previously only 2 RENEW and 2 REBIND requests
were sent, no matter how long the lease lifetime. Now, requests are
send according to the RFC, which results in starting with a timeout
of 1/2 the t1 or t2 period, and halving the timeout for each retry
down to a minimum of 60 seconds.
Fixes: #17909
Dan Streetman [Tue, 8 Dec 2020 20:36:19 +0000 (15:36 -0500)]
sd-dhcp-client: simplify dhcp4 t1/t2 parsing
The parsing of the dhcpv4 lease lifetime, as well as the t1/t2
times, is simplified by this commit.
This differs from previous behavior; previously, the lease lifetime and
t1/t2 values were modified by random 'fuzz' by subtracting 3, then adding
a random number between 0 and (slightly over) 2 seconds. The resulting
values were therefore always between 1-3 seconds shorter than the value
provided by the server (or the default, in case of t1/t2). Now, as
described in RFC2131, the random 'fuzz' is between -1 and +1 seconds,
meaning the actual t1 and t2 value will be up to 1 second earlier or
later than the server-provided (or default) t1/t2 value.
This also differs in handling the lease lifetime, as described above it
previously was adjusted by the random 'fuzz', but the RFC does not state
that the lease expiration time should be adjusted, so now the code uses
exactly the lease lifetime as provided by the server with no adjustment.
Dan Streetman [Tue, 8 Dec 2020 20:33:29 +0000 (15:33 -0500)]
sd-dhcp-client: add RFC2131 retransmission details
RFC2131, providing the details for dhcpv4, has specific retransmission
intervals that it outlines. This adds functions to compute the timeouts
as the RFC describes.
Dan Streetman [Tue, 8 Dec 2020 19:37:59 +0000 (14:37 -0500)]
sd-dhcp-client: track dhcp4 t1, t2, expire times
Add fields to dhcp4 client to track t1, t2, and lease expiry times
Dan Streetman [Mon, 14 Dec 2020 20:50:11 +0000 (15:50 -0500)]
sd-dhcp-client: don't log timeouts if already expired
Luca Boccassi [Mon, 14 Dec 2020 22:22:51 +0000 (22:22 +0000)]
Merge pull request #17960 from yuwata/network-log-routing-policy-rule
network: introduce log_routing_policy_rule()
Luca Boccassi [Mon, 14 Dec 2020 22:21:50 +0000 (22:21 +0000)]
Merge pull request #17959 from yuwata/network-log-address
network: introduce log_address_debug()
Luca Boccassi [Mon, 14 Dec 2020 22:17:33 +0000 (22:17 +0000)]
Merge pull request #17958 from yuwata/network-route-log
network: introduce log_route_debug()
Yu Watanabe [Mon, 14 Dec 2020 16:13:32 +0000 (01:13 +0900)]
core: detect_container() may return negative errno
Zbigniew Jędrzejewski-Szmek [Thu, 10 Dec 2020 19:41:41 +0000 (20:41 +0100)]
varlink: add debug logging
When something fails, we need some logs to figure out what happened.
This is primarily relevant for connection errors, but in general we
want to log about all errors, even if they are relatively unlikely.
We want one log on failure, and generally no logs on success.
The general idea is to not log in static functions, and to log in the
non-static functions. Non-static functions which call other functions
may thus log or not log as appropriate to have just one log entry in the
end.
Yu Watanabe [Mon, 14 Dec 2020 17:37:11 +0000 (02:37 +0900)]
Revert "core/namespace: ignore ENOENT for /proc/sys/kernel/domainname and hostname"
This reverts commit
0ebc9f23faf5586f8a9250c3be08773eb3f8d2da.
With the previous commit, these files should always exist.
Closes #17979.
Yu Watanabe [Mon, 14 Dec 2020 15:55:57 +0000 (00:55 +0900)]
core/namespace: do not ignore non-EPERM mount error
Follow-up for
61f8a7bd3e20222617fc59f398071daf2af86f96.
Yu Watanabe [Mon, 14 Dec 2020 13:57:06 +0000 (22:57 +0900)]
time-util: fix typo
Yu Watanabe [Sun, 6 Dec 2020 13:29:43 +0000 (22:29 +0900)]
core/namespace: use existing /proc when not enough priviledge
Fixes #17860.
Yu Watanabe [Wed, 28 Oct 2020 08:28:36 +0000 (17:28 +0900)]
network: use netlink_message_read_in_addr_union() where applicable
Yu Watanabe [Wed, 28 Oct 2020 08:22:58 +0000 (17:22 +0900)]
network: introduce log_routing_policy_rule_debug()
Yu Watanabe [Thu, 29 Oct 2020 02:41:01 +0000 (11:41 +0900)]
network: introduce routing_policy_rule_equal()
Yu Watanabe [Wed, 28 Oct 2020 07:16:58 +0000 (16:16 +0900)]
network: make routing_policy_rule_remove() take Manager instead of Link
As routing policy rules are managed by Manager.
Yu Watanabe [Wed, 28 Oct 2020 09:09:51 +0000 (18:09 +0900)]
network: make address_drop() accept NULL
Yu Watanabe [Wed, 28 Oct 2020 09:09:16 +0000 (18:09 +0900)]
network: introduce log_address_debug()
Yu Watanabe [Wed, 28 Oct 2020 12:16:22 +0000 (21:16 +0900)]
network: merge manager_drop_routes() and manager_drop_foreign_routes()
Yu Watanabe [Wed, 28 Oct 2020 08:41:06 +0000 (17:41 +0900)]
network: introduce log_route_debug()
Yu Watanabe [Wed, 28 Oct 2020 08:49:49 +0000 (17:49 +0900)]
network: use netlink_message_read_in_addr_union() where applicable
Yu Watanabe [Mon, 14 Dec 2020 03:37:23 +0000 (12:37 +0900)]
core/namespace: ignore ENOENT for /proc/sys/kernel/domainname and hostname
If they do not exist, hostname or domainname cannot be modified. So, it is ok.
Fixes #17866, especially https://github.com/systemd/systemd/issues/17866#issuecomment-
744118614.
Lennart Poettering [Mon, 14 Dec 2020 12:15:31 +0000 (13:15 +0100)]
Update TODO
Yu Watanabe [Mon, 14 Dec 2020 00:40:45 +0000 (09:40 +0900)]
tree-wide: fix typo
Ilya Dmitrichenko [Mon, 14 Dec 2020 09:35:08 +0000 (09:35 +0000)]
nspawn: remove outdated comment regarding bpffs
bpffs fully respects mount namespaces since kernel version 4.7
References:
- https://github.com/torvalds/linux/commit/
e27f4a942a0ee4b84567a3c6cfa84f273e55cbb7
- https://github.com/torvalds/linux/commit/
612bacad78ba6d0a91166fc4487af114bac172a8
Yu Watanabe [Thu, 10 Dec 2020 23:34:13 +0000 (08:34 +0900)]
sd-device: make TAGS= property prefixed and suffixed with ":"
The commit
6f3ac0d51766b0b9101676cefe5c4ba81feba436 drops the prefix and
suffix in TAGS= property. But there exists several rules that have like
`TAGS=="*:tag:*"`. So, the property must be always prefixed and suffixed
with ":".
Fixes #17930.
Yu Watanabe [Mon, 14 Dec 2020 00:48:23 +0000 (09:48 +0900)]
Merge pull request #17928 from keszybz/nss-logging
Enable logging in nss modules
Jameer Pathan [Sat, 12 Dec 2020 06:30:26 +0000 (12:00 +0530)]
Add Pull Request Labeler
Vito Caputo [Sun, 6 Dec 2020 08:21:17 +0000 (00:21 -0800)]
mmap-cache: drop ret_size from mmap_cache_get()
The ret_size result is a bit of an awkward optimization that in a
sense enables bypassing the mmap-cache API, while encouraging
duplication of logic it already implements.
It's only utilized in one place; journal_file_move_to_object(),
apparently to avoid the overhead of remapping the whole object
again once its header, and thus its actual size, is known.
With mmap-cache's context cache, the overhead of simply
re-getting the object with the now known size should already be
negligible. So it's not clear what benefit this brings, unless
avoiding some function calls that do very little in the hot
context-cache hit case is of such a priority.
There's value in having all object-sized gets pass through
mmap_cache_get(), as it provides a single entrypoint for
instrumentation in profiling/statistics gathering. When
journal_file_move_to_object() bypasses getting the full object
size, you don't capture the full picture on the mmap-cache side
in terms of object sizes explicitly loaded from a journal file.
I'd like to see additional accounting in mmap_cache_get() in a
future commit, taking advantage of this change.
dropsignal [Sat, 12 Dec 2020 13:31:36 +0000 (07:31 -0600)]
Update 60-keyboard.hwdb
added support for samsung series 3 np355v4c laptop keyboard
Khem Raj [Sun, 13 Dec 2020 00:15:57 +0000 (16:15 -0800)]
meson: Fix reallocarray check
reallocarray() is defined in stdlib.h, so that would be right header to
check for its presense.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Zbigniew Jędrzejewski-Szmek [Fri, 11 Dec 2020 11:28:44 +0000 (12:28 +0100)]
pid1: stop making /dev noexec
Quoting Andy Lutomirski:
> The upcoming Linux SGX driver has a device node /dev/sgx. User code opens
> it, does various setup things, mmaps it, and needs to be able to create
> PROT_EXEC mappings. This gets quite awkward if /dev is mounted noexec.
We already didn't use noexec in spawn, and this extends this behaviour to other
systems.
Afaik, the kernel would refuse execve() on a character or block device
anyway. Thus noexec on /dev matters only for actual binaries copied to /dev,
which requires root privileges in the first place.
We don't do noexec on either /tmp or /dev/shm (because that causes immediate
problems with stuff like Java and cffi). And if you have those two at your
disposal anyway, having noexec on /dev doesn't seem important. So the 'noexec'
attribute on /dev doesn't really mean much, since there are multiple other
similar directories which don't require root privileges to write to.
C.f. https://salsa.debian.org/kernel-team/initramfs-tools/-/commit/
33c10ef43b03dc6d9ee09a46c598f6ee34ad0b81.
Karel Zak [Thu, 10 Dec 2020 11:27:33 +0000 (12:27 +0100)]
udev-builtin-blkid: add VOLUME_ID, LOGICAL_VOLUME_ID, VOLUME_SET_ID and DATA_PREPARER_ID
The new libblkid release will provide these variables. Let's keep is
accessible also from udev-db for the rest of the system.
Luca Boccassi [Fri, 11 Dec 2020 22:53:33 +0000 (22:53 +0000)]
Merge pull request #17921 from yuwata/network-drop-assertion-17920
network: drop assertions to check link state in netlink callback handlers
Zbigniew Jędrzejewski-Szmek [Fri, 11 Dec 2020 10:39:44 +0000 (11:39 +0100)]
Merge pull request #17935 from yuwata/network-fix-another-race-in-link-reconfigure-17929
network: do not reconfigure interface when the link gains carrier but udev not initialized it yet