platform/upstream/systemd.git
5 years agotest-network: add testcases for handling disable_ipv6 sysctl property
Yu Watanabe [Mon, 18 Feb 2019 06:26:26 +0000 (15:26 +0900)]
test-network: add testcases for handling disable_ipv6 sysctl property

5 years agotest-network: update cosmetic workaround
Yu Watanabe [Mon, 18 Feb 2019 06:26:54 +0000 (15:26 +0900)]
test-network: update cosmetic workaround

Almost all tests call copy_unit_to_networkd_unit_path() at first.
So, let's move the line break there.

5 years agonetwork: check whether ipv6 is enabled in sysctl
Yu Watanabe [Mon, 18 Feb 2019 06:00:15 +0000 (15:00 +0900)]
network: check whether ipv6 is enabled in sysctl

Currently, the value is read only once.

Fixes #11711.

5 years agonetwork: use sysctl_read_ip_property()
Yu Watanabe [Mon, 18 Feb 2019 05:47:13 +0000 (14:47 +0900)]
network: use sysctl_read_ip_property()

5 years agosysctl-util: add sysctl_read_ip_property()
Yu Watanabe [Mon, 18 Feb 2019 05:41:43 +0000 (14:41 +0900)]
sysctl-util: add sysctl_read_ip_property()

5 years agonetwork: use sysctl_write_ip_property() and friends
Yu Watanabe [Mon, 18 Feb 2019 05:30:32 +0000 (14:30 +0900)]
network: use sysctl_write_ip_property() and friends

5 years agosysctl-util: introduce sysctl_write_ip_property() and friends
Yu Watanabe [Mon, 18 Feb 2019 04:34:01 +0000 (13:34 +0900)]
sysctl-util: introduce sysctl_write_ip_property() and friends

5 years agoFix typo - "do note use guessable names"
unixsysadmin [Wed, 20 Feb 2019 21:35:17 +0000 (21:35 +0000)]
Fix typo - "do note use guessable names"

Fix typo - "do note use guessable names" to "do not use guessable names"

5 years agohwdb: rotation for Trekstor Surf Tab Twin 11.6 aka VolksTablet (#11771)
Benjamin Dahlhoff [Wed, 20 Feb 2019 18:05:25 +0000 (19:05 +0100)]
hwdb: rotation for Trekstor Surf Tab Twin 11.6 aka VolksTablet (#11771)

5 years agoMerge pull request #11512 from poettering/resolved-stub-pipeline
Zbigniew Jędrzejewski-Szmek [Wed, 20 Feb 2019 18:03:13 +0000 (19:03 +0100)]
Merge pull request #11512 from poettering/resolved-stub-pipeline

support incoming pipelined TCP stream queries in DNS stub server

5 years agoMerge pull request #11725 from poettering/temp-dir
Zbigniew Jędrzejewski-Szmek [Wed, 20 Feb 2019 17:37:05 +0000 (18:37 +0100)]
Merge pull request #11725 from poettering/temp-dir

docs: document semantics of /tmp and /var/tmp

5 years agoMerge pull request #11482 from poettering/tmpfiles-bsd-lock
Zbigniew Jędrzejewski-Szmek [Wed, 20 Feb 2019 17:34:03 +0000 (18:34 +0100)]
Merge pull request #11482 from poettering/tmpfiles-bsd-lock

adds a fully safe way how apps can pin files into /tmp temporarily, excepting them from the tmpfiles aging algorithm, based on BSD file locks on dirs we descend into

5 years agoman,units: link up new documentation about temporary directories
Lennart Poettering [Mon, 18 Feb 2019 16:48:34 +0000 (17:48 +0100)]
man,units: link up new documentation about temporary directories

5 years agodocs: document semantics of /tmp and /var/tmp
Lennart Poettering [Fri, 15 Feb 2019 15:52:13 +0000 (16:52 +0100)]
docs: document semantics of /tmp and /var/tmp

5 years agocore: add ':' prefix to ExecXYZ= skip env var substitution
Anita Zhang [Thu, 7 Feb 2019 23:25:37 +0000 (15:25 -0800)]
core: add ':' prefix to ExecXYZ= skip env var substitution

5 years agoMerge pull request #11556 from yuwata/udev-ctrl-use-sd-event
Lennart Poettering [Wed, 20 Feb 2019 16:55:28 +0000 (17:55 +0100)]
Merge pull request #11556 from yuwata/udev-ctrl-use-sd-event

udev: make `udevadm control` send multiple control commands in a single connection

5 years agoMerge pull request #11682 from topimiettinen/private-utsname
Lennart Poettering [Wed, 20 Feb 2019 13:12:15 +0000 (14:12 +0100)]
Merge pull request #11682 from topimiettinen/private-utsname

core: ProtectHostname feature

5 years agounits: enable ProtectHostname=yes
Topi Miettinen [Mon, 18 Feb 2019 22:30:12 +0000 (00:30 +0200)]
units: enable ProtectHostname=yes

5 years agocore: ProtectHostname= feature
Topi Miettinen [Fri, 8 Feb 2019 17:25:00 +0000 (19:25 +0200)]
core: ProtectHostname= feature

Let services use a private UTS namespace. In addition, a seccomp filter is
installed on set{host,domain}name and a ro bind mounts on
/proc/sys/kernel/{host,domain}name.

5 years agonamespace: make MountFlags=shared work again
Franck Bui [Wed, 13 Feb 2019 17:45:36 +0000 (18:45 +0100)]
namespace: make MountFlags=shared work again

Since commit 0722b359342d2a9f9e0d453875624387a0ba1be2, the root mountpoint is
unconditionnally turned to slave which breaks units that are using explicitly
MountFlags=shared (and no other options that would implicitly require a slave
root mountpoint).

Here is a test case:

  $ systemctl cat test-shared-mount-flag.service
  # /etc/systemd/system/test-shared-mount-flag.service
  [Service]
  Type=simple
  ExecStartPre=/usr/bin/mkdir -p /mnt/tmp
  ExecStart=/bin/sh -c "/usr/bin/mount -t tmpfs -o size=10M none /mnt/tmp && sleep infinity"
  ExecStop=-/bin/sh -c "/usr/bin/umount /mnt/tmp"
  MountFlags=shared

  $ systemctl start test-shared-mount-flag.service
  $ findmnt /mnt/tmp
  $

Mount on /mnt/tmp is not visible from the host although MountFlags=shared was
used.

This patch fixes that and turns the root mountpoint to slave when it's really
required.

5 years agoman: udevadm: mention that no control command can be specified after --exit
Yu Watanabe [Fri, 25 Jan 2019 16:16:00 +0000 (01:16 +0900)]
man: udevadm: mention that no control command can be specified after --exit

5 years agoudev-ctrl: split out logic of waiting for reply to udev_ctrl_wait()
Yu Watanabe [Fri, 25 Jan 2019 15:33:08 +0000 (00:33 +0900)]
udev-ctrl: split out logic of waiting for reply to udev_ctrl_wait()

This makes `udevadm control` can send multiple commands in one
connection.

5 years agoudevadm: print error if the commands fail
Zbigniew Jędrzejewski-Szmek [Fri, 18 Jan 2019 15:39:58 +0000 (16:39 +0100)]
udevadm: print error if the commands fail

We'd exit with an error but no output. Print the error in the usual fashion.

5 years agoudev-ctrl: use sd_event and introduce udev_ctrl_start()
Yu Watanabe [Fri, 25 Jan 2019 15:27:26 +0000 (00:27 +0900)]
udev-ctrl: use sd_event and introduce udev_ctrl_start()

Now the new callback function get enum udev_ctrl_msg_type.
So, this commit also drops udev_ctrl_connection and udev_ctrl_msg.

5 years agoudev: drop unused Manager::uevent_event
Yu Watanabe [Fri, 25 Jan 2019 15:13:16 +0000 (00:13 +0900)]
udev: drop unused Manager::uevent_event

5 years agoudev-ctrl: refactor udev_ctrl_enable_receiving()
Yu Watanabe [Thu, 24 Jan 2019 06:09:40 +0000 (15:09 +0900)]
udev-ctrl: refactor udev_ctrl_enable_receiving()

5 years agoudev-ctrl: make udev_ctrl_new() return negative errno on failure
Yu Watanabe [Thu, 24 Jan 2019 06:00:06 +0000 (15:00 +0900)]
udev-ctrl: make udev_ctrl_new() return negative errno on failure

5 years agoutil: make base64_append() add a whitespace before appending data
Yu Watanabe [Mon, 18 Feb 2019 23:30:02 +0000 (08:30 +0900)]
util: make base64_append() add a whitespace before appending data

Follow-up for 4bb91a950a0f2eae27bb4c7aaff9a87e86ef0c44.

5 years agoMerge pull request #11764 from yuwata/network-verify
Yu Watanabe [Tue, 19 Feb 2019 21:13:53 +0000 (06:13 +0900)]
Merge pull request #11764 from yuwata/network-verify

network: introduce network_verify() and drop incompatible settings

5 years agotest-network: add tests for meaningless settings which should be ignored by networkd
Yu Watanabe [Tue, 19 Feb 2019 04:13:04 +0000 (05:13 +0100)]
test-network: add tests for meaningless settings which should be ignored by networkd

5 years agonetwork: introduce network_verify()
Yu Watanabe [Tue, 19 Feb 2019 03:36:15 +0000 (12:36 +0900)]
network: introduce network_verify()

Some settings cannot set simultaneously. Let's warn and drop
incompatible settings.

Currently, it is not comprehensive. But this may be a good first step.

5 years agonetwork: warn about deprecated value in DHCP=
Yu Watanabe [Tue, 19 Feb 2019 03:35:51 +0000 (12:35 +0900)]
network: warn about deprecated value in DHCP=

5 years agonetwork: update enum value assignments for AddressFamilyBoolean
Yu Watanabe [Tue, 19 Feb 2019 03:34:53 +0000 (12:34 +0900)]
network: update enum value assignments for AddressFamilyBoolean

5 years agoMerge pull request #11759 from yuwata/fix-test-dropin
Yu Watanabe [Tue, 19 Feb 2019 21:11:11 +0000 (06:11 +0900)]
Merge pull request #11759 from yuwata/fix-test-dropin

 test-network: check whether ethtool support driver field for dummy interfaces

5 years agoMerge pull request #11757 from yuwata/test-udev-continuation
Yu Watanabe [Tue, 19 Feb 2019 21:10:37 +0000 (06:10 +0900)]
Merge pull request #11757 from yuwata/test-udev-continuation

test-udev: add more tests for line continuations and comments

5 years agotest-network: check whether ethtool support driver field for dummy interfaces
Yu Watanabe [Tue, 19 Feb 2019 10:56:48 +0000 (19:56 +0900)]
test-network: check whether ethtool support driver field for dummy interfaces

Fixes #11758.

5 years agodhcp: don't stop receiving packets when the link goes down
Beniamino Galvani [Sun, 17 Feb 2019 18:06:34 +0000 (19:06 +0100)]
dhcp: don't stop receiving packets when the link goes down

When the link goes down, DHCP client_receive_message*() functions return an
error and the related I/O source is removed from the main loop. With the
current implementation of systemd-networkd this doesn't matter because the DHCP
client is always stopped on carrier down and restarted on carrier up. However
it seems wrong to have the DHCP client crippled (because no packet can be
received anymore) once the link goes temporarily down.

Change the receive functions to ignore a ENETDOWN event so that the client will
be able to receive packets again after the link comes back.

5 years agonetwork: do not log wrong error cause
Yu Watanabe [Tue, 19 Feb 2019 06:09:28 +0000 (15:09 +0900)]
network: do not log wrong error cause

If sd_dhcp_lease_get_router() returns a positive value and the first
router is null, then invalid error cause was logged.

Follow-up for f8862395e8f802e4106a07ceaaf02b6a1faa5a6d.

5 years agoman: drop unnecessary parenthesis
Yu Watanabe [Tue, 19 Feb 2019 05:35:10 +0000 (14:35 +0900)]
man: drop unnecessary parenthesis

5 years agoMerge pull request #11754 from poettering/bus-path-limit
Yu Watanabe [Tue, 19 Feb 2019 10:32:03 +0000 (19:32 +0900)]
Merge pull request #11754 from poettering/bus-path-limit

sd-bus path limit fixes

5 years agoMerge pull request #11763 from yuwata/disable-test-dropin-driver
Yu Watanabe [Tue, 19 Feb 2019 10:27:01 +0000 (19:27 +0900)]
Merge pull request #11763 from yuwata/disable-test-dropin-driver

test-network: tentatively disable Driver field test

5 years agotest-network: disable test for Driver field in networkctl
Yu Watanabe [Tue, 19 Feb 2019 08:39:02 +0000 (17:39 +0900)]
test-network: disable test for Driver field in networkctl

CentOS CI does not like the test. Let's at least tentatively disable the test.

5 years agotest-network: update format used by networkctl status
Yu Watanabe [Tue, 19 Feb 2019 08:38:30 +0000 (17:38 +0900)]
test-network: update format used by networkctl status

5 years agotest-udev: add more tests for line continuations and comments
Yu Watanabe [Tue, 19 Feb 2019 00:22:45 +0000 (09:22 +0900)]
test-udev: add more tests for line continuations and comments

5 years agotest-udev: use proper semantics for too long line with continuation
Yu Watanabe [Tue, 19 Feb 2019 00:21:42 +0000 (09:21 +0900)]
test-udev: use proper semantics for too long line with continuation

Follow-up for 1e797cf596df50a6bdd8cbf8e9b2467a3a934171.

5 years agoAllocate temporary strings to hold dbus paths on the heap
Riccardo Schirone [Mon, 4 Feb 2019 13:29:28 +0000 (14:29 +0100)]
Allocate temporary strings to hold dbus paths on the heap

Paths are limited to BUS_PATH_SIZE_MAX but the maximum size is anyway too big
to be allocated on the stack, so let's switch to the heap where there is a
clear way to understand if the allocation fails.

5 years agoRefuse dbus message paths longer than BUS_PATH_SIZE_MAX limit.
Riccardo Schirone [Mon, 4 Feb 2019 13:29:09 +0000 (14:29 +0100)]
Refuse dbus message paths longer than BUS_PATH_SIZE_MAX limit.

Even though the dbus specification does not enforce any length limit on the
path of a dbus message, having to analyze too long strings in PID1 may be
time-consuming and it may have security impacts.

In any case, the limit is set so high that real-life applications should not
have a problem with it.

5 years agoMerge pull request #11478 from yuwata/enumerate-match-parent
Lennart Poettering [Mon, 18 Feb 2019 17:35:47 +0000 (18:35 +0100)]
Merge pull request #11478 from yuwata/enumerate-match-parent

sd-device-enumerator: support multiple parents

5 years agoresolved: correctly prove the non-existense of wildcard
Alexander Tsoy [Wed, 23 Jan 2019 13:33:50 +0000 (16:33 +0300)]
resolved: correctly prove the non-existense of wildcard

* Current logic:
For each NSEC RR find the common suffix between the owner name and
the next name, append asterisk to that suffix and check that
generated wildcard is covered by the NSEC RR in question.

* New logic:
Find NSEC RR covering queried name, generate wildcard as
<asterisk>.<closest encloser> using this RR, then check if any
of the NSEC RRs covers generated wildcard.

5 years agocore: Allow to configure execute_directories execution behavior
Matthias Klumpp [Sun, 9 Sep 2018 01:18:45 +0000 (03:18 +0200)]
core: Allow to configure execute_directories execution behavior

This adds a new bitfield to `execute_directories()` which allows to
configure whether to ignore non-zero exit statuses of binaries run and
whether to allow parallel execution of commands.
In case errors are not ignored, the exit status of the failed script
will now be returned for error reposrting purposes or other further
future use.

5 years agoMerge pull request #10408 from keszybz/analyze-cat-presets
Lennart Poettering [Mon, 18 Feb 2019 15:02:45 +0000 (16:02 +0100)]
Merge pull request #10408 from keszybz/analyze-cat-presets

systemd-analyze cat-presets

5 years agoMerge pull request #11729 from yuwata/fix-11721
Lennart Poettering [Mon, 18 Feb 2019 15:02:26 +0000 (16:02 +0100)]
Merge pull request #11729 from yuwata/fix-11721

sd-device: also store properties read from udev database to sd_device::properties_db

5 years agoMerge pull request #11208 from thom311/dhcp-router-option-list
Lennart Poettering [Mon, 18 Feb 2019 14:51:30 +0000 (15:51 +0100)]
Merge pull request #11208 from thom311/dhcp-router-option-list

dhcp: have DHCP library support multiple router entries in Router option (3)

5 years agonetlink: fix routing-policy-rule integer type for FRA_TUN_ID
Thomas Haller [Mon, 18 Feb 2019 12:01:56 +0000 (13:01 +0100)]
netlink: fix routing-policy-rule integer type for FRA_TUN_ID

FRA_TUN_ID is a 64 big endian integer. Fix the policy.

FRA_TUN_ID is unused by networkd, hence I think this bug
has no actual consequences.

Fixes: bce67bbee359eec19e6778619b6651100a1c1477

5 years agoMerge pull request #11457 from grooverdan/sendsigkill_no
Lennart Poettering [Mon, 18 Feb 2019 12:41:52 +0000 (13:41 +0100)]
Merge pull request #11457 from grooverdan/sendsigkill_no

service: killmode=cgroup|mixed, SendSIGKILL=no services are not multiprocess

5 years agonetwork: avoid inet_ntoa() in favor of inet_ntop()
Thomas Haller [Sun, 16 Dec 2018 21:02:21 +0000 (22:02 +0100)]
network: avoid inet_ntoa() in favor of inet_ntop()

inet_ntop() is not documented to be thread-safe, so it should not
be used in the DHCP library. Arguably, glibc uses a thread local
buffer, so indeed there is no problem with a suitable libc. Anyway,
just avoid it.

5 years agodhcp: move filtering of bogus DNS/NTP addresses out of DHCP client
Thomas Haller [Fri, 14 Dec 2018 15:25:01 +0000 (16:25 +0100)]
dhcp: move filtering of bogus DNS/NTP addresses out of DHCP client

The DHCP client should not pre-filter addresses beyond what RFC
requires. If a client's user (like networkd) wishes to skip/filter
certain addresses, it's their responsibility.

The point of this is that the DHCP library does not hide/abstract
information that might be relevant for certain users. For example,
NetworkManager exposes DHCP options in its API. When doing that, the
options should be close to the actual lease.

This is related to commit d9ec2e632df4905201facf76d6a205edc952116a
(dhcp4: filter bogus DNS/NTP server addresses silently).

5 years agodhcp: handle multiple addresses for "Router" (option 3) in DHCP library
Thomas Haller [Fri, 14 Dec 2018 10:10:57 +0000 (11:10 +0100)]
dhcp: handle multiple addresses for "Router" (option 3) in DHCP library

The Router DHCP option may contain a list of one or more
routers ([1]). Extend the API of sd_dhcp_lease to return a
list instead of only the first.

Note that networkd still only uses the first router (if present).
Aside from extending the internal API of the DHCP client, there
is almost no change in behavior. The only visible difference in
behavior is that the "ROUTER" variable in the lease file is now a
list of addresses.

Note how RFC 2132 does not define certain IP addresses as invalid for the
router option. Still, previously sd_dhcp_lease_get_router() would never
return a "0.0.0.0" address. In fact, the previous API could not
differenciate whether no router option was present, whether it
was invalid, or whether its first router was "0.0.0.0". No longer let
the DHCP client library impose additional restrictions that are not
part of RFC. Instead, the caller should handle this. The patch does
that, and networkd only consideres the first router entry if it is not
"0.0.0.0".

[1] https://tools.ietf.org/html/rfc2132#section-3.5

5 years agonetwork: don't return allocated buffer of zero length from deserialize_in_addrs()
Thomas Haller [Fri, 14 Dec 2018 23:45:46 +0000 (00:45 +0100)]
network: don't return allocated buffer of zero length from deserialize_in_addrs()

deserialize_in_addrs() allocates the buffer before trying to parse
the IP address. Since a parsing error is silently ignored, the returned
size might be zero. In such a case we shouldn't return any buffer.

Anyway, there was no leak, because there are only two callers like

    r = deserialize_in_addrs(&lease->dns, dns);

which both keep the unused buffer and later release it.

Note that deserialize_in_addrs() doesn't free the pointer before
reassigning the new output. The caller must take care to to pass
"ret" with an allocated buffer that would be leaked when returning
the result.

5 years agoMerge pull request #11746 from yuwata/udev-rules-cleanup
Lennart Poettering [Mon, 18 Feb 2019 12:05:34 +0000 (13:05 +0100)]
Merge pull request #11746 from yuwata/udev-rules-cleanup

udev-rules: several cleanups for udev-rules.c

5 years agomeson: drop unused HAVE_STRUCT_FIB_RULE_{UID,PORT}_RANGE
Yu Watanabe [Sat, 16 Feb 2019 17:40:02 +0000 (02:40 +0900)]
meson: drop unused HAVE_STRUCT_FIB_RULE_{UID,PORT}_RANGE

5 years agoMerge pull request #11681 from yuwata/network-link-enslaved-operstate
Lennart Poettering [Mon, 18 Feb 2019 12:00:13 +0000 (13:00 +0100)]
Merge pull request #11681 from yuwata/network-link-enslaved-operstate

network: introduce new 'enslaved' operstate

5 years agoMerge pull request #11698 from yuwata/fix-network-route-table
Lennart Poettering [Mon, 18 Feb 2019 11:58:32 +0000 (12:58 +0100)]
Merge pull request #11698 from yuwata/fix-network-route-table

network: honor specified route table

5 years agoudev-event: make subst_format_var() always provide null-terminated string on success
Yu Watanabe [Sat, 16 Feb 2019 22:56:28 +0000 (07:56 +0900)]
udev-event: make subst_format_var() always provide null-terminated string on success

Fixes #11731.

5 years agonetlink: fix routing-policy-rule netlink type for FRA_GOTO/FRA_UNUSED2
Thomas Haller [Mon, 18 Feb 2019 06:28:02 +0000 (07:28 +0100)]
netlink: fix routing-policy-rule netlink type for FRA_GOTO/FRA_UNUSED2

- RTA_OIF has no business in the routing-rule policy. It is numerical
  identical to FRA_GOTO. Fix using the correct enum value. Note that
  RTA_OIF/FRA_GOTO was not used by networkd, and the type was already
  correct at uint32. So, there is no change in behavior.

- RTA_GATEWAY also does not belong to the routing-rules. It is numerical
  identical to FRA_UNUSED2. Obviously, that value is unused as well,
  so there is no actual change in behavior either. In particular
  that is because:
    - kernel would not send messages with FRA_UNUSED2 attribute.
    - networkd would not try to parse/send RTA_GATEWAY/FRA_UNUSED2
      attributes.

Fixes: bce67bbee359eec19e6778619b6651100a1c1477

5 years agoMerge pull request #11226 from keszybz/enable-remount-fs-dynamically
Lennart Poettering [Mon, 18 Feb 2019 11:46:31 +0000 (12:46 +0100)]
Merge pull request #11226 from keszybz/enable-remount-fs-dynamically

Enable systemd-remount-fs.service dynamically

5 years agoMerge pull request #11747 from yuwata/fstab-generator-log
Lennart Poettering [Mon, 18 Feb 2019 11:42:16 +0000 (12:42 +0100)]
Merge pull request #11747 from yuwata/fstab-generator-log

fstab-generator: fix and update log message

5 years agoMerge pull request #11743 from keszybz/two-memory-fixups
Lennart Poettering [Mon, 18 Feb 2019 11:09:25 +0000 (12:09 +0100)]
Merge pull request #11743 from keszybz/two-memory-fixups

Two fixups for issues found by scanners

5 years agocore: update comment
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jan 2019 11:33:42 +0000 (12:33 +0100)]
core: update comment

Initially, the check was that /usr is not a separate fs, and was later relaxed
to allow /usr to be mounted in the initramfs. Documentation was updated in 9e93f6f09229ffdbc46ab,
but this comment wasn't. Let's update it too.

5 years agomeson: drop unused "udevhomedir"
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jan 2019 11:18:19 +0000 (12:18 +0100)]
meson: drop unused "udevhomedir"

5 years agoanalyze: generalize cat-config to apply to tmpfiles, presets, hwdb.d, etc.
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jan 2019 10:34:22 +0000 (11:34 +0100)]
analyze: generalize cat-config to apply to tmpfiles, presets, hwdb.d, etc.

Fixes #10256.

What works:

systemd-analyze cat-config systemd/system-preset
systemd-analyze cat-config systemd/user-preset
systemd-analyze cat-config tmpfiles.d
systemd-analyze cat-config sysusers.d
systemd-analyze cat-config systemd/sleep.conf
systemd-analyze cat-config systemd/user.conf
systemd-analyze cat-config systemd/system.conf
systemd-analyze cat-config udev/udev.conf
(and other .conf files)
systemd-analyze cat-config udev/rules.d
systemd-analyze cat-config environment.d
systemd-analyze cat-config environment

Directories may be specified with the trailing dash or not.

The caveat is that for user configuration, systemd and other tools also look
at ~/.config/. It would be nice to support this, but this patch doesn't.
"cat-config --user" is rejected, and we may allow it in the future and then
extend the search path with directories under ~/.config.

What doesn't work (and probably shouldn't because those files cannot be
meaningfully concatenated):

systemd-analyze cat-config systemd/system  (.service, .slice, .socket, ...)
systemd-analyze cat-config systemd/user
systemd-analyze cat-config systemd/network (.network, .link, and .dnssd)

The hardcoding of information about paths in this manner is a bit ugly, but
OTOH, it is not too onerous, and at least we have one place where all the
schemes are "documented" through code. It'll make us think twice before adding
yet another slightly different scheme.

5 years agoanalyze: use SYNTHETIC_ERRNO
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jan 2019 21:53:03 +0000 (22:53 +0100)]
analyze: use SYNTHETIC_ERRNO

5 years agoudev: use the usual set of load paths for udev rules
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jan 2019 11:31:06 +0000 (12:31 +0100)]
udev: use the usual set of load paths for udev rules

This adds /usr/local/lib/udev/rules.d to the search path on non-split-usr systems.
On split-usr systems, the paths with /usr/-prefixes are added too.
In the past, on split-usr systems, it made sense to only load rules from
/lib/udev/rules.d, because /usr could be mounted late. But we don't support running
without /usr since 80758717a63, so in practice it doesn't matter whether the
rules files are in /lib/udev/rules.d or /usr/lib/udev/rules.d. Distributions
that maintain the illusion of functional split-usr are welcome to simply not put any
files in /usr/lib/udev/rules.d/.

In practice this doesn't change much, but it makes udev more consistent with the
rest of the systemd suite.

5 years agoenvironment-d-generator: do not include /lib/environment.d in the list
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jan 2019 16:34:55 +0000 (17:34 +0100)]
environment-d-generator: do not include /lib/environment.d in the list

This makes the code match documentation (opposite compared to previous
commits). This is user configuration, hence it should not depend on stuff
in /lib/ even when split-usr is used.

5 years agoudev,network: use standard paths for .network and .link files
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jan 2019 13:30:24 +0000 (14:30 +0100)]
udev,network: use standard paths for .network and .link files

This centralizes the configuration to one header file.
/usr/local/lib is now included in the search list, and documentation is
updated accordingly.

5 years agoresolved: use standard paths for .dnssd files
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jan 2019 13:20:00 +0000 (14:20 +0100)]
resolved: use standard paths for .dnssd files

/usr/local/lib/systemd/dnssd is now also included in the search path. This
path is of limited usefulness, but it makes sense to be consistent.

Documentation is updated to match. Outdated advice against drop-ins in /usr
is removed.

5 years agoman: fix section numbers
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jan 2019 15:42:30 +0000 (16:42 +0100)]
man: fix section numbers

5 years agoman: add missing spdx header
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jan 2019 12:55:47 +0000 (13:55 +0100)]
man: add missing spdx header

5 years agoman: document paths under /usr/local in standard-conf.xml
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jan 2019 12:53:49 +0000 (13:53 +0100)]
man: document paths under /usr/local in standard-conf.xml

standard-conf.xml is currently included by:
man/binfmt.d.xml
man/environment.d.xml
man/modules-load.d.xml
man/sysctl.d.xml
man/coredump.conf.xml
man/journal-remote.conf.xml
man/journal-upload.conf.xml
man/journald.conf.xml
man/logind.conf.xml
man/networkd.conf.xml
man/resolved.conf.xml
man/systemd-sleep.conf.xml
man/systemd-system.conf.xml

All those programs actually use CONF_PATHS_NULSTR or CONF_PATHS_STRV,
so this changes the documentation to match code.

5 years agoresolved: add missing spdx header
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jan 2019 12:28:47 +0000 (13:28 +0100)]
resolved: add missing spdx header

5 years agoIntroduce CONF_PATHS_USR_STRV to mirror CONF_PATHS_STRV
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jan 2019 12:12:18 +0000 (13:12 +0100)]
Introduce CONF_PATHS_USR_STRV to mirror CONF_PATHS_STRV

5 years agoshared/install: generate list of files in separate function
Zbigniew Jędrzejewski-Szmek [Mon, 15 Oct 2018 10:29:48 +0000 (12:29 +0200)]
shared/install: generate list of files in separate function

No functional change.

5 years agotest-network: add tests for bonding
Yu Watanabe [Sat, 9 Feb 2019 13:56:42 +0000 (22:56 +0900)]
test-network: add tests for bonding

5 years agoman: mention that bond master follows slave operstates
Yu Watanabe [Tue, 12 Feb 2019 21:46:26 +0000 (06:46 +0900)]
man: mention that bond master follows slave operstates

5 years agoman: mention new enslaved operational state
Yu Watanabe [Sat, 9 Feb 2019 18:50:48 +0000 (03:50 +0900)]
man: mention new enslaved operational state

5 years agonetworkctl: make enslaved operstate green
Yu Watanabe [Sat, 9 Feb 2019 18:49:12 +0000 (03:49 +0900)]
networkctl: make enslaved operstate green

5 years agonetwork: make bond master follow operstates of slaves
Yu Watanabe [Tue, 12 Feb 2019 21:32:48 +0000 (06:32 +0900)]
network: make bond master follow operstates of slaves

If one of bond slaves is in off, no-carrier, or dormant, then
bond master is set to degraded.

5 years agoudev-rules: use parse_uid() or parse_gid()
Yu Watanabe [Mon, 18 Feb 2019 03:18:56 +0000 (12:18 +0900)]
udev-rules: use parse_uid() or parse_gid()

5 years agoudev-rules: use new() macro instead of malloc_multiply()
Yu Watanabe [Mon, 18 Feb 2019 01:41:48 +0000 (10:41 +0900)]
udev-rules: use new() macro instead of malloc_multiply()

5 years agotest-udev: add a testcase of too long line
Yu Watanabe [Mon, 18 Feb 2019 01:38:29 +0000 (10:38 +0900)]
test-udev: add a testcase of too long line

5 years agoudev-rules: use read_line() and drop fgets()
Yu Watanabe [Mon, 18 Feb 2019 01:37:49 +0000 (10:37 +0900)]
udev-rules: use read_line() and drop fgets()

5 years agofstab-generator: also logs about x-systemd.growfs mount option
Yu Watanabe [Mon, 18 Feb 2019 02:31:10 +0000 (11:31 +0900)]
fstab-generator: also logs about x-systemd.growfs mount option

5 years agofstab-generator: fix debug log
Yu Watanabe [Mon, 18 Feb 2019 02:29:45 +0000 (11:29 +0900)]
fstab-generator: fix debug log

5 years agoudev-rules: use size_t for array index
Yu Watanabe [Mon, 18 Feb 2019 00:24:03 +0000 (09:24 +0900)]
udev-rules: use size_t for array index

5 years agoudev-rules: use GREEDY_REALLOC() macro where it applicable
Yu Watanabe [Mon, 18 Feb 2019 00:21:47 +0000 (09:21 +0900)]
udev-rules: use GREEDY_REALLOC() macro where it applicable

This also changes types of several variables e.g. token_max to size_t.

5 years agotest-network: decrease sleep time in test_bind_carrier()
Yu Watanabe [Sat, 16 Feb 2019 18:59:15 +0000 (03:59 +0900)]
test-network: decrease sleep time in test_bind_carrier()

This effectively reverts 63eb09569aa90721be4accbea4b78421f3c1ba7c,
as the commit does not fix #11724.

5 years agonetwork: always drop configs when corresponding network file does not exist
Yu Watanabe [Sat, 16 Feb 2019 18:57:13 +0000 (03:57 +0900)]
network: always drop configs when corresponding network file does not exist

Follow-up for 93b4dab57e2e13bd804cbee999241be65a443e2e.

Fixes #11724.

5 years agoshared/calendarspec: do not allocate a big string on stack
Zbigniew Jędrzejewski-Szmek [Sat, 16 Feb 2019 21:35:46 +0000 (22:35 +0100)]
shared/calendarspec: do not allocate a big string on stack

The string can be as long as a logical line in a unit file — so no unlimited,
but quite big. Let's use a normal heap allocation when making a copy.

https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13125

5 years agoresolve: drop unnecessary %n fields from dns_resource_record_to_string()
Yu Watanabe [Sat, 16 Feb 2019 16:04:49 +0000 (01:04 +0900)]
resolve: drop unnecessary %n fields from dns_resource_record_to_string()

And use returned value by asprintf() instead.

This hopefully fixes #11733.

5 years agobasic/hexdecoct: be more careful in overflow check
Zbigniew Jędrzejewski-Szmek [Sat, 16 Feb 2019 19:34:57 +0000 (20:34 +0100)]
basic/hexdecoct: be more careful in overflow check

CID #139583: plen + 1 is evaluated as int, and could in principle overflow.
So cast to ssize_t and add an additional check that our overflow calculation
doesn't overflow itself.