Commit Graph

31655 Commits

Author SHA1 Message Date
Zach Smith ae463e4ef2 systemd-sleep: Set SYSTEMD_SLEEP_ACTION for systemd-sleep hooks.
When suspend-then-hibernate is called, hooks have no ability to determine which
stage of the request is being handled; they only see 'pre' and 'post' with the
verb 'suspend-then-hibernate'. This change introduces an environment variable
called SYSTEMD_SLEEP_ACTION that contains the name of the action that is
processing: 'suspend', 'hibernate', 'hybrid-sleep', or
'suspend-after-failed-hibernate'.
2021-01-09 18:11:01 +09:00
Yu Watanabe 83f0ff1eda
Merge pull request #18137 from keszybz/deprecate-blanket-import-environment
Deprecate blanket import-environment
2021-01-09 09:24:16 +09:00
Yu Watanabe 66bf4617b1
Merge pull request #18169 from OnkelUlla/can_bus_error_reporting
network: can: add support for bus error reporting
2021-01-09 09:21:54 +09:00
Yu Watanabe 608ac76367
Merge pull request #18168 from yuwata/network-cleanups
network: several follow-ups for recently merged PRs
2021-01-09 09:21:19 +09:00
Ulrich Ölmann 77b674049b network: can: add support for bus error reporting
Enhance systemd-networkd to be able to control a CAN device's berr-reporting
flag via the new boolean directive BusErrorReporting= to be used in network
files.
2021-01-08 20:23:12 +01:00
Ulrich Ölmann 3757912db4 network: can: pretty up debug messages
Do not construct the english words "Enabling"/"Disabling" but use one of the
smart helper functions here.
2021-01-08 20:21:59 +01:00
Zbigniew Jędrzejewski-Szmek 32854f7044 systemctl: deprecate blanket import-environment
Importing the full environment is convenient, but it doesn't work too well in
practice, because we get a metric ton of shell-specific crap that should never
end up in the global environment block:

$ systemctl --user show-environment
...
SHELL=/bin/zsh
AUTOJUMP_ERROR_PATH=/home/zbyszek/.local/share/autojump/errors.log
AUTOJUMP_SOURCED=1
CONDA_SHLVL=0
CVS_RSH=ssh
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DESKTOP_SESSION=gnome
DISPLAY=:0
FPATH=/usr/share/Modules/init/zsh-functions:/usr/local/share/zsh/site-functions:/usr/share/zsh/site-functions:/usr/share/zsh/5.8/functions
GDMSESSION=gnome
GDM_LANG=en_US.UTF-8
GNOME_SETUP_DISPLAY=:1
GUESTFISH_INIT=$'\\e[1;34m'
GUESTFISH_OUTPUT=$'\\e[0m'
GUESTFISH_PS1=$'\\[\\e[1;32m\\]><fs>\\[\\e[0;31m\\] '
GUESTFISH_RESTORE=$'\\e[0m'
HISTCONTROL=ignoredups
HISTSIZE=1000
LOADEDMODULES=
OLDPWD=/home/zbyszek
PWD=/home/zbyszek
QTDIR=/usr/lib64/qt-3.3
QTINC=/usr/lib64/qt-3.3/include
QTLIB=/usr/lib64/qt-3.3/lib
QT_IM_MODULE=ibus
SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0
SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/2612,unix/unix:/tmp/.ICE-unix/2612
SHLVL=0
STEAM_FRAME_FORCE_CLOSE=1
TERM=xterm-256color
USERNAME=zbyszek
WISECONFIGDIR=/usr/share/wise2/
...

Plenty of shell-specific and terminal-specific stuff that have no global
significance.

Let's start warning when this is used to push people towards importing only
specific variables.

Putative NEWS entry:
  * systemctl import-environment will now emit a warning when called without
    any arguments (i.e. to import the full environment block of the called
    program). This command will usually be invoked from a shell, which means
    that it'll inherit a bunch of variables which are specific to that shell,
    and usually to the tty the shell is connected to, and don't have any
    meaning in the global context of the system or user service manager.
    Instead, only specific variables should be imported into the manager
    environment block.

    Similarly, programs which update the manager environment block by directly
    calling the D-Bus API of the manager, should also push specific variables,
    and not the full inherited environment.
2021-01-08 20:01:40 +01:00
Luca Boccassi bde8c2cc1a
Merge pull request #18128 from mrc0mmand/coverity
ci: move jobs from Travis CI to GitHub Actions
2021-01-08 18:11:55 +00:00
Yu Watanabe 0c2c0fd256 resolve: fix use after free in DnsAnswer
This fixes a bug introduced by ae45e1a383.

The set DnsAnswer::set_items contains the reference to the array in
DnsAnswer. So, the set must be reconstructed when we realloc() the
object.

Fixes #18132.
2021-01-08 19:06:00 +01:00
Ulrich Ölmann 6ed6c4780f network: can: simplify usage of booleans
Harmonize with what is done for TripleSampling, Termination & ListenOnly.
2021-01-08 18:42:34 +01:00
Yu Watanabe f7d0ea5b6f network: refuse to set 0 for rx or tx queue
Man page says that the valid value is 1-4096.
2021-01-09 00:05:45 +09:00
Yu Watanabe 386e89083f network: read RTAX_ADVMSS in received route message 2021-01-08 23:56:13 +09:00
Yu Watanabe 78ebbf0286 network: add missing TAKE_PTR() 2021-01-08 23:25:20 +09:00
Yu Watanabe a084b38789 udev/cdrom: split main() into main() and run()
However, we do not use DEFINE_MAIN_FUNCTION() here, as ubuntu s390x CI
does not like it...
2021-01-08 14:08:38 +00:00
Yu Watanabe 2131110553 udev/cdrom: drop unnecessary headers 2021-01-08 14:08:38 +00:00
Yu Watanabe 2af5ad50d1 udev/cdrom: drop never hit condition 2021-01-08 14:08:38 +00:00
Yu Watanabe 0dd6189f8c udev/cdrom: void()ify several function calls 2021-01-08 14:08:38 +00:00
Yu Watanabe 80cb2a69ec udev/cdrom: tighten variable scope used in loop 2021-01-08 14:08:38 +00:00
Yu Watanabe 67e5bc0be9 udev/cdrom: use unaligned_read_be32() or friends 2021-01-08 14:08:38 +00:00
Yu Watanabe 866725e8aa udev/cdrom: split cd_media_info() into small pieces 2021-01-08 14:08:38 +00:00
Yu Watanabe 530a715ea9 udev/cdrom: introduce enum for media state 2021-01-08 14:08:38 +00:00
Yu Watanabe 97b2248475 udev/cdrom: move media status to Context 2021-01-08 14:08:38 +00:00
Yu Watanabe 38f3e20883 udev/cdrom: introduce enum for media and drive feature 2021-01-08 14:08:38 +00:00
Yu Watanabe e5aac5cdf1 udev/cdrom: introduce Context 2021-01-08 14:08:38 +00:00
Yu Watanabe 0f0b079135 udev/cdrom: make cd_profiles() return positive value if drive has media 2021-01-08 14:08:38 +00:00
Yu Watanabe 138dd9545a udev/cdrom: make media_lock() return negative errno 2021-01-08 14:08:38 +00:00
Yu Watanabe 4fe9ab406e udev/cdrom: introduce scsi_cmd_run_and_log() 2021-01-08 14:08:38 +00:00
Yu Watanabe 511ff06e99 udev/cdrom: use random_u64() and usleep() 2021-01-08 14:08:38 +00:00
Yu Watanabe 56c1a2977b udev/cdrom: split out parse_argv() and help() 2021-01-08 14:08:38 +00:00
Susant Sahani 007cac09a2 network: route - add support to configure tcp advmss 2021-01-08 14:06:13 +00:00
Frantisek Sumsal d1b74295e8 test: temporarily skip failing tests on GH Actions 2021-01-08 11:37:01 +01:00
Jan Tojnar 60bce7c6d9 pkg-config: make prefix overridable again
While we don't support prefix being != /usr, and this is hardcoded
all over the place, variables in pkg-config file are expected
to have overridable base directory.

This is important for at least the following two use cases:

- Installing projects to non-FHS package-specific prefixes for Nix-style
  package managers. Of course, it is then their responsibility
  to ensure systemd can find the service files.
- Installing to local path for development purposes.
  This is a compromise between running a program from a build directory,
  and running it fully installed to system prefix.

You will not want to write to system prefix in either case.

For more information, see also
https://www.bassi.io/articles/2018/03/15/pkg-config-and-paths/

Fixes https://github.com/systemd/systemd/issues/18082

Partially reverts 6e65df89c3
2021-01-07 15:28:21 +01:00
Lennart Poettering 15308e5083 stat-util: don't try to open path on path_is_temporary_fs()
I mean, the old code at least used O_PATH, but still, we shouldn't
allocate/close an fd if we don't have to.
2021-01-06 23:26:08 +00:00
Lennart Poettering 8b1ac00fa9
Merge pull request #18150 from poettering/strextend-tweak
tree-wide: beef up strextend() a bit
2021-01-06 19:55:29 +01:00
Luca Boccassi bf3b428f73 systemctl: have is-enabled return success for aliases when calling into pid1 too
commit 15d7ab87c4 introduced the
change to add an 'alias' state, but it was wired to systemctl
only when running in 'client-side' mode. Return success as
expected and documented also when running in 'server-mode'.

Fixes https://github.com/systemd/systemd/issues/18134
2021-01-06 17:39:18 +01:00
Lennart Poettering 2a4e1fd0d4 string-util: use GREEDY_ALLOC_ROUND_UP() in strextend()
This uses GREEDY_ALLOC_ROUND_UP() to grow the allocation size
exponentially. This should speed allocation loops up a bit, given
that we often call strextend() repeatedly in a loop on the same
buffer.
2021-01-06 17:25:12 +01:00
Lennart Poettering c2bc710b24 string-util: imply NULL termination of strextend() argument list
The trailing NULL in the argument list is now implied (similar to
what we already have in place in strjoin()).
2021-01-06 17:24:46 +01:00
Luca Boccassi 3c2c8e62c9 cryptsetup: use crypt_token_max if available
New API added upstream:

8a12f6dc2c
2021-01-05 12:16:07 +00:00
Susant Sahani 0a9fb9bad8 network: Allow to set device's receive queues and transmit queues 2021-01-05 12:46:28 +09:00
Luca Boccassi 68147f9371
Merge pull request #18109 from yuwata/network-routing-policy-rule-family-both-fixes
network: fixes related to Family=both in [RoutingPolicyRule]
2020-12-30 11:27:24 +00:00
Yu Watanabe 2797d945d2
Merge pull request #18105 from yuwata/fuzz-fix-timeout
Fuzz fix timeout
2020-12-30 12:11:23 +09:00
Endre Szabo 9e516e4c05
A typo fix in bootctl.c (#18106) 2020-12-30 12:10:24 +09:00
Yu Watanabe ae45e1a383 resolve: slightly optimize dns_answer_add()
Previously, dns_answer_add() was O(n^2).
With this change dns_packet_extract() becomes ~15 times faster for some
extremal case.

Before:
```
$ time ./fuzz-dns-packet ~/downloads/clusterfuzz-testcase-minimized-fuzz-dns-packet-5631106733047808
/home/watanabe/downloads/clusterfuzz-testcase-minimized-fuzz-dns-packet-5631106733047808... ok

real    0m15.453s
user    0m15.430s
sys     0m0.007s
```

After:
```
$ time ./fuzz-dns-packet ~/downloads/clusterfuzz-testcase-minimized-fuzz-dns-packet-5631106733047808
/home/watanabe/downloads/clusterfuzz-testcase-minimized-fuzz-dns-packet-5631106733047808... ok

real    0m0.831s
user    0m0.824s
sys     0m0.006s
```

Hopefully fixes oss-fuzz#19227.
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19227
2020-12-30 04:14:22 +09:00
Yu Watanabe b652cccab9 resolve: field size in dns resource record may be zero 2020-12-30 04:14:22 +09:00
Yu Watanabe 0b71a7e01d siphash: introduce siphash24_compress_safe() 2020-12-30 04:14:18 +09:00
Yu Watanabe a75466ed19 network: drop fib rules configured with Family=both 2020-12-30 03:19:07 +09:00
Yu Watanabe 49de8d5ced network: set RoutingPolicyRule::family based on Family= setting 2020-12-30 03:19:07 +09:00
Yu Watanabe c1934a8f2f network: always re-configure rules even if already exist
routing_policy_rule_get() in link_set_routing_policy_rules() does not
work when [RoutingPolicyRule] section does not have From= or To=.
2020-12-30 03:19:03 +09:00
Yu Watanabe 57fe5a42f0 network: drop unnecessary checks
By the previous commit, the checks are not necessary any more.
2020-12-30 03:17:42 +09:00
Yu Watanabe fdce9324c7 network: fix possible memory leak
When set_put() returns 0, then already stored rule will be unref()ed
from Manager.
2020-12-30 02:11:36 +09:00