summaryrefslogtreecommitdiffstats
path: root/NEWS (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-02-16resolved: let's preferably route reverse lookups for local subnets to ↵Lennart Poettering3-1/+80
matching interfaces Let's preferably route traffic for reverse lookups to LLMNR/mDNS/DNS on the matching interface if the IP address is in the local subnet. Also, if looking up an IP address of our own host, let's avoid doing LLMNR/mDNS at all. This is useful if "~." is a routing domain to DNS, as it means, local reverse lookups still go to LLMNR/mDNS, too. Fixes: #16243 #10081
2021-02-16resolved: log process info of clients requesting resolution via D-BusLennart Poettering3-0/+60
Let's make things more debuggable: when debug logging is on, let's say which client is asking for our services. This is helpful for easily figuring out which local process might interfere with your debugging sessions by issuing additional requests while you try to debug a request (I am looking at you, geoclue!).
2021-02-16resolved: propagate source where an RR from back to clientLennart Poettering7-7/+62
This is extremely useful when debugging stuff: knowing whether a result was cached, came from network, or was synthesized.
2021-02-16resolved: add "confidential" flag for replies passed to clientsLennart Poettering13-41/+95
Let's introduce a new flag that indicates whether the response was acquired in "confidential" mode, i.e. via encrypted DNS-over-TLS, or synthesized locally. Fixes: #12859
2021-02-16resolved: replace "answer_authenticated" bool by uint64_t query_flags fieldLennart Poettering6-84/+87
Let's use the same flags type we use for client communication, i.e. instead of "bool answer_authenticated", let's use "uint64_t answer_query_flags", with the SD_RESOLVED_AUTHENTICATED flag. This is mostly just search/replace, i.e. a refactoring, no change in behaviour. This becomes useful once in a later commit SD_RESOLVED_CONFIDENTIAL is added to indicate resolution that either were encrypted (DNS-over-TLS) or never left the local system.
2021-02-16resolvectl: clarify IDNA and search path logic in combination with ↵Lennart Poettering2-11/+65
"resolvectl query --type=" When low-level RR resolution is requested from "resolvectl query" via "--type=" or "--class=" no search domain logic is applied and no IDNA translation. Explain this in detail in the documentation, and also mentions this when users attempt to resolve single-label names or names with international characters in the output. I believe the current behaviour is correct, but it is indeed surprising. Hence the documentation and output improvement. Fixes: #11325 #10737
2021-02-15journalctl: rotation is not a reason to warn, but certainly noteworthyLennart Poettering1-1/+1
Downgrade the phrasing, since it is a bit misleading. Fixes: #18465
2021-02-15resolved: close UDP socket when we received a network error on itLennart Poettering1-0/+2
2021-02-15resolved: instead of closing DNS UDP transaction fds right-away, add them to ↵Lennart Poettering6-10/+194
a socket "graveyard" The "socket graveyard" shall contain sockets we have sent a question out of, but not received a reply. If we'd close thus sockets immediately when we are not interested anymore, we'd trigger ICMP port unreachable messages once we after all *do* get a reply. Let's avoid that, by leaving the fds open for a bit longer, until a timeout is reached or a reply datagram received. Fixes: #17421
2021-02-15socket-util: tighten parsing of ifnamesLennart Poettering1-8/+8
Numeric ifnames should be acceptable only if that's enabled by flag, and refused otherwise. Hence, let's parse as ifindex first, and if that works decide. Finally, let's refuse any numeric ifnames that are not valid ifindexs, but look like them.
2021-02-15socket-util: fix indentationLennart Poettering1-3/+3
2021-02-15portabled: add DBUS documentationLuca Boccassi4-1/+431
2021-02-15portabled: use SD_BUS_METHOD_WITH_ARGSLuca Boccassi2-21/+129
2021-02-15portabled: use service_parse_argv/bus_add_implementationLuca Boccassi5-10/+31
Remove some boilerplate and allow introspection
2021-02-15resolved: don't redundantly switch DNS servers because of transaction failuresLennart Poettering7-19/+32
When a transaction fails and we decide to switch DNS servers, don#t do so unconditionally. Check if the current DNS server is still the same as when the transaction was initiated. And if not, do not do anything. That should reduce the number of redundant DNS server switches if many parallel transactions fail simultaneously (which is pretty likely if DNSSEC is on). Fixes: #17040
2021-02-15resolved: reuse check for link-local IP address lookupsLennart Poettering1-17/+13
Let's reuse accept_link_local_reverse_lookups() at one more place, where we check for the list of link local reverase address domains. Since we don't actually accept the domains here (but rather the opposite, not accept), let's rename the function a bit more generically with accept_ → match_. While we are at it invert the if branches, to make things more easily understandable: filter out the unwatnted stuff and have the "all good" state as main codepath.
2021-02-15rpm: restart services in %posttransZbigniew Jędrzejewski-Szmek3-1/+28
This fixes a long-standing issue in packaging scriptlets: daemon-reload was moved to the end of the transaction, but restarting services was still straightaway after package installation. https://bugzilla.redhat.com/show_bug.cgi?id=1614751 Note that daemon-reload is called twice. This wouldn't be hardly noticable, except that now a bunch of units (at least in Fedora) generate very verbose warnings about deprecated features. So we get those warnings twice… reload-or-restart --needing-restart is also called twice, but the second call is usually a noop, because the first clears the flag for restarted units. The second call is necessary for the case where we only uninstall packages, and the %transfiletriggerpostun trigger fires, but not the %transfiletriggerin scriptlet. Also note that this assumes that units are marked only for restart if paths under @systemunitdir@ or /etc/systemd/system have been touched. I would prefer make the trigger that does 'restart --needing-restart' fire always, but it seems rpm doesn't have such functionality. (Except as a %transfiletrigger that would trigger on "/*" to catch all transactions, but that seems ineffiecient and ugly.)
2021-02-15rpm: order sysctl/sysusers/tmpfiles execution before package scriptletsZbigniew Jędrzejewski-Szmek2-47/+47
P>1000000 is *before* "normal" scriptlets, P<1000000 is *after*. I think it makes sense to do stuff like execution of sysctl/sysusers/tmpfiles configuration before package scriptlets. I think that was the intent, but a single digit got dropped ;( Also, let's reorder the scriptlets in the file to match execution order, to make it easier to see what is going on. Most of those may happen in any order, but there are some exceptions: tmpfiles should be after sysusers, udevadm --reload should be after hwdb.
2021-02-15rpm: simplify daemon-reload triggerZbigniew Jędrzejewski-Szmek2-42/+8
The trigger was initially written to use %transfiletriggerun instead of %transfiletriggerpostun because the latter would not fire. It turned out to a buffer overread in rpm that since has been long fixed: https://bugzilla.redhat.com/show_bug.cgi?id=1284645 https://github.com/rpm-software-management/rpm/commit/f6521c50f6836374a0f7995f8f393aaf36e178ea
2021-02-15rpm: sync the shell version of triggers.systemd with the lua versionZbigniew Jędrzejewski-Szmek2-48/+34
Note that this goes both ways: in particular the lua version had udev scriptlets in the wrong package, fixed in https://src.fedoraproject.org/rpms/systemd/c/3c9433d7cf4afc8d76660402f6c3d9d991596b83. Add missing "|| :" so the scriptlets never fail.
2021-02-15rpm: pull in the alternative trigger implementation in shZbigniew Jędrzejewski-Szmek2-2/+117
From https://src.fedoraproject.org/rpms/systemd/blob/master/f/triggers.systemd. In 12dde791d519bc80d5cca4ab6f088763cd481015 scriptlets were converted to lua. This is not only faster and cleaner, but also avoids a nasty dependency loop: rpm implements the lua scripting internally, so we don't need a working shell for the scriplets. This is nice and all, but unfortunately ostree wants to capture scriptlets and execute them at a later time and does not support lua. So in Fedora we ended up with a revert back to a shell-based implementation [1]. At the time I hoped this would only be a temporary workaround, but three years later I think it's fair to assume that this will not happen any time soon. But carrying the upstream lua version and the downstream sh version is error prone. So let's import the other version into our tree too so that they can be kept in sync. [1] https://src.fedoraproject.org/rpms/systemd/c/8e6b39457b3e2660793821e0524855226e33e306
2021-02-15Move rpm stuff into a separate src/rpm/ directoryZbigniew Jędrzejewski-Szmek5-4/+17
It is only of interest to rpm-based distros, we can move it out of src/core/ which is pretty busy.
2021-02-15systemctl: add "reload-or-restart --marked"Zbigniew Jędrzejewski-Szmek4-13/+96
This is almost equivalent to 'busctl call-method org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager EnqueueMarkedJobs', but waits for the jobs to finish.
2021-02-15systemctl: reduce scope of iterator variablesZbigniew Jędrzejewski-Szmek10-71/+50
2021-02-15core: wrap long linesZbigniew Jędrzejewski-Szmek2-51/+97
2021-02-15core: add EnqueueMarkedJobs method to reload/restart marked unitsZbigniew Jędrzejewski-Szmek4-40/+151
We support two return types for methods that start jobs. EnqueueJob support the full-monty mode with affected jobs. I didn't do this here, since it seems unlikely to be used. In the common case there'd be a huge list of jobs and affected jobs. EnqueueMarkedJobs() just returns a list of jobs that we can wait upon. The name of the method is generic in case we decide to add something other than just reload/restart later on. When errors occur, resource errors are treated as fatal, but for other error types we queue up other jobs, and only return an error at the end. The assumption is that the caller will ignore the result error anyway, so it's better to try to reload/restart as much as possible.
2021-02-15core: allow Markers to be set using set-propertyZbigniew Jędrzejewski-Szmek2-1/+59
2021-02-15core/dbus-unit: reduce scope of iterator variablesZbigniew Jędrzejewski-Szmek1-4/+3
2021-02-15core: add Unit.Markers propertyZbigniew Jędrzejewski-Szmek8-4/+130
The property is never set by systemd, only reset after a stop or restart or reload. It may externally be set to mark the unit for a later restart/reload. I wasn't sure whether to configure the property only for the types where this makes sense (Service, Swap, etc). But Restart() method is defined on the unit, and also having this always under the same property name is more convenient.
2021-02-15Revert "ci: build on Fedora ELN as well"Frantisek Sumsal1-2/+0
This reverts commit 58bc1735fed62bc7426187a80d166369569e799a. The ELN composes are quite unstable and take a while to refresh. Let's drop them again and revisit this once they get more mature to reduce the CI noise.
2021-02-15Fix micmute hotkey on HP EliteBook Folio G1RussianNeuroMancer1-1/+1
Desktop environments expect f20 hotkey instead of micmute
2021-02-15update TODOLennart Poettering1-0/+7
2021-02-15resolved: filter repeated stub queriesLennart Poettering5-0/+75
Let's suppress repeated stub queries coming in, to minimize resource usage. Many DNS clients are pretty aggressive regarding repeating DNS requests, hence let's find them and suppress the follow-ups should we need more time to fulfill the queries.
2021-02-15resolved: allow DNS_PACKET_DATA() argument to be constLennart Poettering1-1/+1
2021-02-15resolved: allow DNS_PACKET_DATA() argument to be constLennart Poettering1-1/+1
2021-02-15resolved: move mdns event sources close to the fdsLennart Poettering1-3/+2
2021-02-15rlimit-util: log when falling back setting limitPierre Dubouilh1-0/+2
2021-02-15test: install binaries from local d/control fileLuca Boccassi1-1/+1
The source package in the apt cache might be older than the packaging from salsa.debian.org/systemd-team/systemd so it might not list all the current binary packages. This is currently the case for systemd-timesyncd, so TEST-30 fails. Simply grep the control file rather than using apt-cache when iterating over the packages contents.
2021-02-15hwdb: add resolution for Waltop/MEDION batteryless graphics tablet (v:172f ↵Florian Hülsmann1-1/+6
p:0505)
2021-02-15tree-wide: fix typoYu Watanabe3-5/+5
2021-02-15fuzz-systemctl-parse-argv: add argv[0] values to corpusZbigniew Jędrzejewski-Szmek1-0/+0
2021-02-15systemctl: use argv[0] not program_invocation_short_name for arg dispatchZbigniew Jędrzejewski-Szmek1-50/+46
The immediate motivation is to allow fuzz-systemctl-parse-argv to cover also the other code paths. p_i_s_n is not getting set (and it probably shouldn't), so the fuzzer would only cover the paths for ./systemctl, and not ./reboot, etc. Looking at argv[0] instead, which is passed as part of the fuzzer data, fixes that. But I think in general it's more correct to look at argv[0] here: after all we have all the information available through local variables and shouldn't go out of our way to look at a global.
2021-02-15test-parse-argument: add a test for the three parse_*_argument() functionsZbigniew Jędrzejewski-Szmek2-0/+65
This mostly tests the return values and that the xsprintf buffers are big enough.
2021-02-15Move and rename parse_json_argument() functionZbigniew Jędrzejewski-Szmek10-29/+32
json.[ch] is a very generic implementation, and cmdline argument parsing doesn't fit there.
2021-02-15Move and rename parse_path_argument() functionZbigniew Jędrzejewski-Szmek18-60/+71
This fits better in shared/, and the new parse-argument.c file is a good home for it.
2021-02-15basic/signal-util: drop unneeded extra byte from bufferZbigniew Jędrzejewski-Szmek1-1/+1
DECIMAL_STR_MAX() already returns +1 for NULL, so no need to do it a second time.
2021-02-15systemctl,loginctl,machinectl: add --signal=listZbigniew Jędrzejewski-Szmek3-8/+35
This lists numerical signal values: $ systemctl --signal list SIGNAL NAME 1 SIGHUP 2 SIGINT 3 SIGQUIT ... 62 SIGRTMIN+28 63 SIGRTMIN+29 64 SIGRTMIN+30 This is useful when trying to kill e.g. systemd with a specific signal number using kill. kill doesn't accept our fancy signal names like RTMIN+4, so one would have to calculate that value somehow. Doing systemctl --signal list | grep -F RTMIN+4 is a nice way of doing that.
2021-02-15ci: switch back to meson-0.56.2Evgeny Vereshchagin1-1/+1
It seems there is another meson (0.57.0) regression preventing clang from building systemd with --optimization=3 -Db_lto=true By analogy with https://github.com/google/oss-fuzz/pull/5199 let's just switch to 0.56.2 for the time being
2021-02-15resolvectl: add support for various new flagsLennart Poettering2-2/+121
2021-02-14resolved: refuse sending packets to our own stub listenersLennart Poettering10-2/+71
A previous commit made sure that when one of our own packets is looped back to us, we ignore it. But let's go one step further, and refuse operation if we notice the server we talk to is our own. This way we won't generate unnecessary traffic and can return a cleaner error. Fixes: #17413