Lennart Poettering [Wed, 5 Dec 2018 17:42:32 +0000 (18:42 +0100)]
logs-show: use grey color for de-emphasizing journal log output
Lennart Poettering [Wed, 5 Dec 2018 17:38:50 +0000 (18:38 +0100)]
resolvectl: color "comment" output grey
Let's de-emphasize the "comment" output a bit, by making it grey.
Lennart Poettering [Wed, 5 Dec 2018 17:23:48 +0000 (18:23 +0100)]
resolvectl: add some basic highlighting to query output
Let's highlight the actual payload the user requested.
Lennart Poettering [Wed, 5 Dec 2018 16:42:09 +0000 (17:42 +0100)]
resolvectl: when doing reverse lookups, show ifindex as "comment" too in output
Similar as before: don't output ifindex twice on the same address, and
show it as comment only.
Do this for reverse lookup output and all other output too.
Lennart Poettering [Wed, 5 Dec 2018 16:31:35 +0000 (17:31 +0100)]
resolvectl: fix interface output when resolving hostnames→addresses
We already used in_addr_ifindex_to_string() which internally appends the
ifindex to the address with % if necessary. It's simply wrong to attach the
intreface a second time with % then. Also, it breaks stuff that cannot
deal with that. Hence, let's reformat this, and add the ifindex as a
comment to the output, and drop the second % suffix.
Lennart Poettering [Wed, 5 Dec 2018 13:02:06 +0000 (14:02 +0100)]
resolvectl: remove allow_loopback parameter from ifname_mangle()
All our bus calls validate whether the specified device is a loopback
device anyway on the server side. Let's hence simplify the client,
there's no value in optimizing error paths after all. But there is value
in simpler code.
Lennart Poettering [Wed, 5 Dec 2018 12:58:34 +0000 (13:58 +0100)]
resolvectl: for our per-link verbs alternatively accept interface name in -i
it's a bit confusing that we take two interfaces for verbs such as "dns"
or "domain": once after the verb, and once as --interface=. While
there's logic behind it, let's make this least surprising: if either is
specified be happy.
This means "resolvectl -i foo dns" is now equivalent to "resolvectl dns
foo …". Note that this is a tweak only, to minimize surprises. We don't
document this alternative syntax, and shouldn't to keep things simple.
Lennart Poettering [Wed, 5 Dec 2018 12:33:31 +0000 (13:33 +0100)]
resolvectl: rework ifname_mangle()
Let's compare the ifname passed in with what is set already if there is
something set already. Complain in that case. This makes commands such
as "resolvectl -i foo dns bar" less weird, as we'll refuse the duplicate
ifname specifications.
Also, free the old arg_ifname right before assigning the new, instead of
doing so in advance.
Lennart Poettering [Tue, 4 Dec 2018 22:18:50 +0000 (23:18 +0100)]
resolved: request incoming ifindex for DNS UDP packets, too
This information is useful to pass back to the caller, as it tells us
where we found the answer.
(While we are at it, fix the socket level for the RECVERR logic)
Fixes: #9778
Zbigniew Jędrzejewski-Szmek [Wed, 5 Dec 2018 16:19:35 +0000 (17:19 +0100)]
Merge pull request #11053 from poettering/rc-local-tweak
rc-local-generator message tweak
Lennart Poettering [Tue, 4 Dec 2018 17:42:31 +0000 (18:42 +0100)]
rc-local-generator: tweak log message generation
Let's be more explicit, and not use LOG_WARNING log level when there's
nothing really wrong.
Fixes: #11044
Follow-up for: #10955
Lennart Poettering [Tue, 4 Dec 2018 17:41:27 +0000 (18:41 +0100)]
rc-local-generator: small shortification
Evgeny Vereshchagin [Wed, 5 Dec 2018 10:38:53 +0000 (11:38 +0100)]
README: embed a CentOS CI badge into README
Plus be more specific about where the badges point to.
Marc-Antoine Perennou [Wed, 5 Dec 2018 10:28:45 +0000 (11:28 +0100)]
systemctl: drop my copyright
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Evgeny Vereshchagin [Wed, 5 Dec 2018 06:19:46 +0000 (09:19 +0300)]
Merge pull request #11025 from evverx/clang-asan
travis: also run the tests built with clang under ASan+UBsan
Evgeny Vereshchagin [Wed, 5 Dec 2018 06:05:02 +0000 (09:05 +0300)]
Merge pull request #11051 from poettering/sock-addr-un-len
trick out ubsan
Lennart Poettering [Tue, 4 Dec 2018 17:21:25 +0000 (18:21 +0100)]
socket-util: Let's trick out ubsan when it validate struct sockaddr_un.sun_path[]
Linux is stupid and sometimes returns a "struct sockaddr_un" that is
longer than its fields, as it NUL terminates .sun_path[] even if it has
full length. ubsan detects this, rightfully. Since this is a Linux
misdesign let's trick out ubsan a bit.
Fixes: #11024
Lennart Poettering [Tue, 4 Dec 2018 17:20:48 +0000 (18:20 +0100)]
socket-util: break lines in sockaddr_pretty() signature
It's soo long, let's make this more readable.
Lennart Poettering [Tue, 4 Dec 2018 17:20:12 +0000 (18:20 +0100)]
socket-util: shorten code a bit
Oliver Smith [Tue, 4 Dec 2018 15:05:15 +0000 (16:05 +0100)]
man/daemon.xml: use AM_DISTCHECK_CONFIGURE_FLAGS
Change the man page to recommend setting AM_DISTCHECK_CONFIGURE_FLAGS
instead of DISTCHECK_CONFIGURE_FLAGS. This is the recommended way from
the automake manual, as otherwise the flag can't be overridden by the
user with something like:
DISTCHECK_CONFIGURE_FLAGS=--some-additional-flags make distcheck
References:
https://www.gnu.org/software/automake/manual/html_node/Checking-the-Distribution.html
https://osmocom.org/issues/3718
Vojtech Trefny [Tue, 4 Dec 2018 15:47:36 +0000 (16:47 +0100)]
rules: watch metadata changes on DASD devices
To make sure the change event is emitted and udev db is updated
after metadata changes.
Lennart Poettering [Tue, 4 Dec 2018 15:19:02 +0000 (16:19 +0100)]
Merge pull request #11041 from yuwata/update-missing-v2
missing: separate missing.h more
Lennart Poettering [Tue, 4 Dec 2018 15:15:09 +0000 (16:15 +0100)]
Merge pull request #11042 from yuwata/tiny-coding-style-fixes
Tiny coding style fixes
Chris Down [Tue, 4 Dec 2018 11:42:30 +0000 (11:42 +0000)]
cgroup: Use varname for cgroup_disable documentation
The current use of literal + replaceable is pretty ugly as it usually
ends up with cgroup_disable= rendered in quotes, which looks really
weird, and this doesn't conform with others of a similar type (for
example, the earlier `DefaultDependencies=no` discussion in the same
file.
Zbigniew Jędrzejewski-Szmek [Tue, 4 Dec 2018 13:32:10 +0000 (14:32 +0100)]
Merge pull request #11037 from poettering/json-table
optionally output tables as JSON
Lennart Poettering [Tue, 4 Dec 2018 11:33:03 +0000 (12:33 +0100)]
Merge pull request #11009 from poettering/root-cgroup-again
tweak root cgroup attribute fiddling for cgroupsv1 again
Yu Watanabe [Tue, 4 Dec 2018 07:26:09 +0000 (08:26 +0100)]
util: drop missing.h from util.h
Yu Watanabe [Tue, 4 Dec 2018 08:29:54 +0000 (09:29 +0100)]
tree-wide: add whitespace between type and variable name
AsciiWolf [Mon, 3 Dec 2018 14:52:24 +0000 (15:52 +0100)]
l10n: update Czech Translation
Yu Watanabe [Tue, 4 Dec 2018 08:18:21 +0000 (09:18 +0100)]
ip-protocol-list: sort headers
Yu Watanabe [Tue, 4 Dec 2018 07:08:15 +0000 (08:08 +0100)]
missing: move char{16,32}_t definitions to missing_type.h
Yu Watanabe [Tue, 4 Dec 2018 06:58:26 +0000 (07:58 +0100)]
missing: move capabilities to missing_capability.h
Yu Watanabe [Tue, 4 Dec 2018 06:57:41 +0000 (07:57 +0100)]
missing: move prctl related entries to missing_prctl.h
Yu Watanabe [Tue, 4 Dec 2018 06:56:19 +0000 (07:56 +0100)]
missing: move statx related definitions to missing_stat.h
Yu Watanabe [Tue, 4 Dec 2018 06:54:09 +0000 (07:54 +0100)]
missing: move entries defined in magic.h to missing_magic.h
Yu Watanabe [Tue, 4 Dec 2018 06:51:52 +0000 (07:51 +0100)]
missing: move input related entries to missing_input.h
Yu Watanabe [Tue, 4 Dec 2018 06:49:11 +0000 (07:49 +0100)]
missing: rename securebits.h to missing_securebits.h
Yu Watanabe [Tue, 4 Dec 2018 06:46:59 +0000 (07:46 +0100)]
missing: move btrfs related entries to missing_btrfs.h and missing_btrfs_tree.h
Yu Watanabe [Tue, 4 Dec 2018 06:41:15 +0000 (07:41 +0100)]
missing: move missing entries in keyctl.h to missing_keyctl.h
Yu Watanabe [Tue, 4 Dec 2018 06:34:47 +0000 (07:34 +0100)]
meson: add missing missing_*.h
William A. Kennington III [Tue, 4 Dec 2018 01:40:41 +0000 (17:40 -0800)]
analyze: Fix if not HAVE_SECCOMP
The new systemd analyze code dependend on routines provided by
libseccomp even if HAVE_SECCOMP is false. This expands the code disabled
in analyze-security to make sure we don't depend on seccomp.
Yu Watanabe [Tue, 4 Dec 2018 04:48:47 +0000 (13:48 +0900)]
Merge pull request #11039 from yuwata/fix-11036
missing: re-add mistakenly dropped entries
Evgeny Vereshchagin [Sun, 2 Dec 2018 06:56:03 +0000 (07:56 +0100)]
travis: install llvm to get llvm-symbolizer
See https://clang.llvm.org/docs/AddressSanitizer.html#symbolizing-the-reports
Yu Watanabe [Tue, 4 Dec 2018 01:32:32 +0000 (02:32 +0100)]
missing: rearrange missing_if_link.h to support centos
Yu Watanabe [Tue, 4 Dec 2018 00:28:23 +0000 (01:28 +0100)]
missing: re-add mistakenly dropped entries
These entries are mistakenly dropped by
9714c020fc4cda1823c2a77e3fd08aefa7d78b25.
Fixes #11036.
Evgeny Vereshchagin [Sun, 2 Dec 2018 06:39:18 +0000 (07:39 +0100)]
travis: also run the tests built with clang under ASan+UBsan
Lennart Poettering [Mon, 3 Dec 2018 20:39:39 +0000 (21:39 +0100)]
format-table: never try to reuse cells that have color/url/uppercase set
The table cell reusing code is supposed to be an internal memory
optimization, and not more. This means behaviour should be the same as
if we wouldn't reuse cells.
Lennart Poettering [Mon, 3 Dec 2018 20:39:12 +0000 (21:39 +0100)]
tree-wide: specify all table headers in lower-case
Lennart Poettering [Mon, 3 Dec 2018 20:36:26 +0000 (21:36 +0100)]
format-table: add option to uppercase cells on display
This adds a per-cell option for uppercasing displayed strings.
Implicitly turn this on for the header row. The fact that we format the
table header in uppercase is a formatting thing after all, hence should
be applied by the formatter, i.e. the table display code.
Moreover, this provides us with the benefit that we can more nicely
reuse the specified table headers as JSON field names, like we already
do: json field names are usually not uppercase.
Lennart Poettering [Mon, 3 Dec 2018 19:58:32 +0000 (20:58 +0100)]
machinectl: optionally output table in JSON
Lennart Poettering [Mon, 3 Dec 2018 19:46:33 +0000 (20:46 +0100)]
loginctl: optionally output table in json
This works now:
$ loginctl list-session --output=json-pretty
Lennart Poettering [Mon, 3 Dec 2018 15:25:34 +0000 (16:25 +0100)]
format-table: optionally covert/output table to JSON
Lennart Poettering [Mon, 3 Dec 2018 19:28:15 +0000 (20:28 +0100)]
format-table: use right field for display
Since .timespan and .timestamp are unionized on top of each other this
doesn't actually matter, but it is still more correct to address it
under it's correct name.
Lennart Poettering [Mon, 3 Dec 2018 19:43:07 +0000 (20:43 +0100)]
output-mode: add new helper OUTPUT_MODE_IS_JSON()
Just a pretty way to determine whether the selected output mode is a
JSON output mode.
Lennart Poettering [Mon, 3 Dec 2018 19:40:02 +0000 (20:40 +0100)]
output-mode: add generic helper to pick right JsonFormatFlags for given OutputMode
Lennart Poettering [Mon, 3 Dec 2018 19:33:02 +0000 (20:33 +0100)]
json: add new display flag JSON_FORMAT_COLOR_AUTO
Typically we want to enable color when colors_enabled() says so, hence
let's automatize this.
Lennart Poettering [Mon, 3 Dec 2018 19:27:55 +0000 (20:27 +0100)]
json: introduce explicit type for json formatting flags
Lennart Poettering [Mon, 3 Dec 2018 20:59:00 +0000 (21:59 +0100)]
Merge pull request #11031 from poettering/gcc-attr-cleanup
various gcc attribute clean-ups
David Malcolm [Mon, 3 Dec 2018 20:57:10 +0000 (15:57 -0500)]
analyze: tweak wording of description for ProtectSystem= (#11035)
Lennart Poettering [Mon, 3 Dec 2018 17:58:29 +0000 (18:58 +0100)]
Merge pull request #10567 from cdown/disable_controller
cgroup: Add DisableControllers= directive to disable controller in subtree
Lennart Poettering [Mon, 3 Dec 2018 16:59:44 +0000 (17:59 +0100)]
Merge pull request #10920 from yuwata/hashmap-destructor
hashmap: make hashmap_free() call destructors of key or value
Lennart Poettering [Mon, 3 Dec 2018 16:55:00 +0000 (17:55 +0100)]
Merge pull request #10976 from yuwata/typesafe-netlink-call
netlink: introduce typesafe netlink functions
Lennart Poettering [Mon, 3 Dec 2018 16:38:50 +0000 (17:38 +0100)]
tree-wide: use new macro HAS_FEATURE_ADDRESS_SANITIZER everywhere
Lennart Poettering [Mon, 3 Dec 2018 16:33:42 +0000 (17:33 +0100)]
sd-bus: use _variable_no_sanitize_address_ also for BUS_ERROR_MAP_ELF_REGISTER
Lennart Poettering [Mon, 3 Dec 2018 16:33:28 +0000 (17:33 +0100)]
static-destruct: turn on new _variable_no_sanitize_address_ variable for STATIC_DESTRUCTOR_REGISTER
Lennart Poettering [Mon, 3 Dec 2018 16:30:43 +0000 (17:30 +0100)]
macro: add macro for llvm no_sanitize_address attribute
We want it for global variables, which LLVM supports and GCC currently
does not (GCC does support it for functions, but we care about global
variables here).
Why is this relevant? When asan is used global variables are padded with
hotzones before and after. But we can't have that for the registration
variables we place in special ELF sections: we want them tightly packed
so that we can iterate through them.
Note that for gcc this isn't an issue, as it will pack stuff in
non-standard sections anyway, even if asan is used.
Lennart Poettering [Mon, 3 Dec 2018 16:30:19 +0000 (17:30 +0100)]
macro: define HAS_FEATURE_ADDRESS_SANITIZER also on gcc
Let's make differences between compilers more minimal.
Evgeny Vereshchagin [Sun, 2 Dec 2018 07:28:24 +0000 (08:28 +0100)]
util-lib: introduce HAS_FEATURE_ADDRESS_SANITIZER
https://clang.llvm.org/docs/AddressSanitizer.html#conditional-compilation-with-has-feature-address-sanitizer
Lennart Poettering [Mon, 3 Dec 2018 12:37:18 +0000 (13:37 +0100)]
test: add test for static destructor
Chris Down [Mon, 3 Dec 2018 14:38:06 +0000 (14:38 +0000)]
cgroup: Add DisableControllers= directive to disable controller in subtree
Some controllers (like the CPU controller) have a performance cost that
is non-trivial on certain workloads. While this can be mitigated and
improved to an extent, there will for some controllers always be some
overheads associated with the benefits gained from the controller.
Inside Facebook, the fix applied has been to disable the CPU controller
forcibly with `cgroup_disable=cpu` on the kernel command line.
This presents a problem: to disable or reenable the controller, a reboot
is required, but this is quite cumbersome and slow to do for many
thousands of machines, especially machines where disabling/enabling a
stateful service on a machine is a matter of several minutes.
Currently systemd provides some configuration knobs for these in the
form of `[Default]CPUAccounting`, `[Default]MemoryAccounting`, and the
like. The limitation of these is that Default*Accounting is overrideable
by individual services, of which any one could decide to reenable a
controller within the hierarchy at any point just by using a controller
feature implicitly (eg. `CPUWeight`), even if the use of that CPU
feature could just be opportunistic. Since many services are provided by
the distribution, or by upstream teams at a particular organisation,
it's not a sustainable solution to simply try to find and remove
offending directives from these units.
This commit presents a more direct solution -- a DisableControllers=
directive that forcibly disallows a controller from being enabled within
a subtree.
Chris Down [Tue, 27 Nov 2018 15:49:41 +0000 (15:49 +0000)]
cgroup: Traverse leaves to realised cgroup to release controllers
This adds a depth-first version of unit_realize_cgroup_now which can
only do depth-first disabling of controllers, in preparation for the
DisableController= directive.
Chris Down [Mon, 26 Nov 2018 13:45:26 +0000 (13:45 +0000)]
cgroup: Rework unit_realize_cgroup_now to explicitly be breadth-first
systemd currently doesn't really expend much effort in disabling
controllers. unit_realize_cgroup_now *may* be able to disable a
controller in the basic case when using cgroup v2, but generally won't
manage as downstream dependents may still use it.
This code doesn't add any logic to fix that, but it starts the process
of moving to have a breadth-first version of unit_realize_cgroup_now for
enabling, and a depth-first version of unit_realize_cgroup_now for
disabling.
Chris Down [Tue, 27 Nov 2018 15:16:35 +0000 (15:16 +0000)]
cgroup: Move attribute application into unit_create_cgroup
We always end up doing these together, so just colocate them and require
manager state for unit_create_cgroup.
Lennart Poettering [Mon, 3 Dec 2018 12:22:15 +0000 (13:22 +0100)]
sd-bus,static-destruct: clean up how we do our ELF section magic
This cleans up a bit how we set up things for the ELF section magic:
1. Let's always use our gcc macros, instead of __attribute__ directly
2. Align our structures to sizeof(void*), i.e. the pointer size, rather
than a fixed 8 or __BIGGEST_ALIGNMENT__. The former is unnecessarily
high for 32bit systems, the latter too high for 64bit systems. gcc
seems to use ptr alignment for static variables itself, hence this
should be good enough for us too. Moreover, the Linux kernel also
uses pointer alginment for all its ELF section registration magic,
hence this should be good enough for us too.
3. Let's always prefix the sections we create ourself with SYSTEMD_,
just to make clear where they come from.
4. Always align the pointer we start from when iterating through these
lists. This should be unnecessary, but makes things nicely
systematic, as we'll align all pointers we use to access these
sections properly.
Lennart Poettering [Mon, 3 Dec 2018 12:17:28 +0000 (13:17 +0100)]
json: use new _align_() macro
Lennart Poettering [Mon, 3 Dec 2018 12:15:09 +0000 (13:15 +0100)]
tree-wide: drop redundant space between __attribute__ and ((
We follow no general rule, but in most cases we do not place a space
outside of macro.h. Hence let's stick to that, and adapt macro.h too,
and follow the rule systematically that there shall not be a space
between __attribute__ and ((...
Yes, this does not matter at all, and is purely OCD cosmetics. But then
again, the uses of __attribute__ are very local only, hence the changes
cleaning this up are small and are unlikely to have to be repeated too
often...
Lennart Poettering [Mon, 3 Dec 2018 12:10:09 +0000 (13:10 +0100)]
macro: add macros for a couple of more gcc attributes we use
Lennart Poettering [Mon, 3 Dec 2018 12:08:33 +0000 (13:08 +0100)]
tree-wide: use gcc attribute macros where appropriate
We have these macros already, hence use them.
Yu Watanabe [Mon, 3 Dec 2018 09:22:05 +0000 (10:22 +0100)]
network: drop unnecessary buffers
Lennart Poettering [Mon, 3 Dec 2018 10:09:04 +0000 (11:09 +0100)]
Merge pull request #10992 from yuwata/follow-up-10948
network: make fib rule accept arbitrary ip protocol
Yu Watanabe [Sun, 2 Dec 2018 15:27:02 +0000 (16:27 +0100)]
missing: split network related entries
Also adds comments which kernel version added the entries.
Closes #10553.
Harald Hoyer [Mon, 3 Dec 2018 09:27:26 +0000 (10:27 +0100)]
sd-boot: remove Stall() call (#11029)
This is left-over from debugging.
Susant Sahani [Sun, 2 Dec 2018 13:04:06 +0000 (18:34 +0530)]
vxlan: minor coding style fixes.
Yu Watanabe [Sun, 2 Dec 2018 17:04:31 +0000 (02:04 +0900)]
Merge pull request #11011 from poettering/tmpfile-util
split up fileio.c a bit
Lennart Poettering [Sun, 2 Dec 2018 12:22:14 +0000 (13:22 +0100)]
resolved: sort headers again
Lennart Poettering [Fri, 30 Nov 2018 21:08:41 +0000 (22:08 +0100)]
util-lib: split out env file parsing code into env-file.c
It's quite complex, let's split this out.
No code changes, just some file rearranging.
Lennart Poettering [Fri, 30 Nov 2018 20:39:12 +0000 (21:39 +0100)]
util-lib: move open_serialization_fd() to serialize.c
It definitely fits better there.
No code changes, just some rearranging.
Lennart Poettering [Fri, 30 Nov 2018 20:12:50 +0000 (21:12 +0100)]
resolved: remove duplicate #include
Lennart Poettering [Fri, 30 Nov 2018 20:18:34 +0000 (21:18 +0100)]
test: remove duplicate #include
Lennart Poettering [Fri, 30 Nov 2018 20:05:27 +0000 (21:05 +0100)]
util-lib: split out all temporary file related calls into tmpfiles-util.c
This splits out a bunch of functions from fileio.c that have to do with
temporary files. Simply to make the header files a bit shorter, and to
group things more nicely.
No code changes, just some rearranging of source files.
Lennart Poettering [Fri, 30 Nov 2018 20:07:21 +0000 (21:07 +0100)]
util-lib: don't include fileio.h from fileio-label.h
There's no reason for doing that, hence simply don't.
Lennart Poettering [Fri, 30 Nov 2018 20:17:20 +0000 (21:17 +0100)]
test: remove unnecessary include
Lennart Poettering [Fri, 30 Nov 2018 20:15:57 +0000 (21:15 +0100)]
test: (void)ify unlink() call
Lennart Poettering [Fri, 30 Nov 2018 20:06:16 +0000 (21:06 +0100)]
fileio: remove unnecessary initialization
Lennart Poettering [Fri, 30 Nov 2018 20:05:49 +0000 (21:05 +0100)]
fileio: include ctype.h with <> rather than ""
It's a system header after all.
Yu Watanabe [Sun, 25 Nov 2018 19:42:36 +0000 (04:42 +0900)]
sysusers: define main through macro
This also fixes possible memleak when uid/gid or user/group name
in database are conflicted.
Yu Watanabe [Sun, 25 Nov 2018 19:41:53 +0000 (04:41 +0900)]
sysusers: use fgetgrent_sane()
Yu Watanabe [Sun, 25 Nov 2018 18:38:48 +0000 (03:38 +0900)]
lldp: rename lldp_neighbor_id_hash_ops and set value destructor
Yu Watanabe [Sun, 25 Nov 2018 18:32:20 +0000 (03:32 +0900)]
udev: use hashmap_clear_free_key() and hashmap_free_free_key()
Yu Watanabe [Wed, 28 Nov 2018 13:55:40 +0000 (22:55 +0900)]
portable: introduce portable_metadata_hash_ops and use it