summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/sd_event_add_io.xml2
-rw-r--r--shell-completion/bash/loginctl3
-rw-r--r--shell-completion/bash/machinectl3
-rw-r--r--shell-completion/bash/systemctl.in3
-rw-r--r--src/network/networkd-link.c10
-rw-r--r--src/resolve/resolved-bus.c11
-rw-r--r--src/resolve/resolved-dns-packet.c9
-rw-r--r--test/test-functions1
8 files changed, 26 insertions, 16 deletions
diff --git a/man/sd_event_add_io.xml b/man/sd_event_add_io.xml
index e3ac407cdf..4cc0428e29 100644
--- a/man/sd_event_add_io.xml
+++ b/man/sd_event_add_io.xml
@@ -196,7 +196,7 @@
with <function>sd_event_add_io()</function>. It takes the event
source object and the new event mask to set.</para>
- <para><function>sd_event_source_get_io_events()</function>
+ <para><function>sd_event_source_get_io_revents()</function>
retrieves the I/O event mask of currently seen but undispatched
events from an I/O event source created previously with
<function>sd_event_add_io()</function>. It takes the event source
diff --git a/shell-completion/bash/loginctl b/shell-completion/bash/loginctl
index 7a083d2875..776eca4e62 100644
--- a/shell-completion/bash/loginctl
+++ b/shell-completion/bash/loginctl
@@ -41,7 +41,8 @@ _loginctl () {
if __contains_word "$prev" ${OPTS[ARG]}; then
case $prev in
--signal|-s)
- comps=$(compgen -A signal)
+ _signals
+ return
;;
--kill-who)
comps='all leader'
diff --git a/shell-completion/bash/machinectl b/shell-completion/bash/machinectl
index 140465d316..61c5402786 100644
--- a/shell-completion/bash/machinectl
+++ b/shell-completion/bash/machinectl
@@ -57,7 +57,8 @@ _machinectl() {
if __contains_word "$prev" ${OPTS[ARG]}; then
case $prev in
--signal|-s)
- comps=$(compgen -A signal)
+ _signals
+ return
;;
--kill-who)
comps='all leader'
diff --git a/shell-completion/bash/systemctl.in b/shell-completion/bash/systemctl.in
index d80d8f02a8..6ffab33e45 100644
--- a/shell-completion/bash/systemctl.in
+++ b/shell-completion/bash/systemctl.in
@@ -115,7 +115,8 @@ _systemctl () {
if __contains_word "$prev" ${OPTS[ARG]}; then
case $prev in
--signal|-s)
- comps=$(compgen -A signal)
+ _signals
+ return
;;
--type|-t)
comps=$(__systemctl $mode -t help)
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index 64a4b74e15..a9d91b07f6 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -2040,9 +2040,13 @@ static int link_configure(Link *link) {
assert(link->network);
assert(link->state == LINK_STATE_PENDING);
- r = link_drop_foreign_config(link);
- if (r < 0)
- return r;
+ /* Drop foreign config, but ignore loopback device.
+ * We do not want to remove loopback address. */
+ if (!(link->flags & IFF_LOOPBACK)) {
+ r = link_drop_foreign_config(link);
+ if (r < 0)
+ return r;
+ }
r = link_set_bridge_fdb(link);
if (r < 0)
diff --git a/src/resolve/resolved-bus.c b/src/resolve/resolved-bus.c
index 1908cae2b7..da1b5014bf 100644
--- a/src/resolve/resolved-bus.c
+++ b/src/resolve/resolved-bus.c
@@ -298,7 +298,15 @@ static void bus_method_resolve_address_complete(DnsQuery *q) {
goto finish;
}
- /* We don't process CNAME for PTR lookups. */
+ r = dns_query_process_cname(q);
+ if (r == -ELOOP) {
+ r = sd_bus_reply_method_errorf(q->request, BUS_ERROR_CNAME_LOOP, "CNAME loop detected, or CNAME resolving disabled on '%s'", dns_question_name(q->question));
+ goto finish;
+ }
+ if (r < 0)
+ goto finish;
+ if (r > 0) /* This was a cname, and the query was restarted. */
+ return;
r = sd_bus_message_new_method_return(q->request, &reply);
if (r < 0)
@@ -1011,7 +1019,6 @@ finish:
}
static int bus_method_resolve_service(sd_bus_message *message, void *userdata, sd_bus_error *error) {
- _cleanup_(dns_resource_key_unrefp) DnsResourceKey *key = NULL;
_cleanup_(dns_question_unrefp) DnsQuestion *question = NULL;
const char *name, *type, *domain, *joined;
_cleanup_free_ char *n = NULL;
diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c
index 472486777c..4b6b6afae8 100644
--- a/src/resolve/resolved-dns-packet.c
+++ b/src/resolve/resolved-dns-packet.c
@@ -1746,12 +1746,9 @@ int dns_packet_read_rr(DnsPacket *p, DnsResourceRecord **ret, size_t *start) {
if (r < 0)
goto fail;
- /* The types bitmap must contain at least the NSEC record itself, so an empty bitmap means
- something went wrong */
- if (bitmap_isclear(rr->nsec.types)) {
- r = -EBADMSG;
- goto fail;
- }
+ /* We accept empty NSEC bitmaps. The bit indicating the presence of the NSEC record itself
+ * is redundant and in e.g., RFC4956 this fact is used to define a use for NSEC records
+ * without the NSEC bit set. */
break;
diff --git a/test/test-functions b/test/test-functions
index a5644eaf73..49bd35f688 100644
--- a/test/test-functions
+++ b/test/test-functions
@@ -1134,7 +1134,6 @@ inst_libdir_file() {
}
check_nspawn() {
- [[ -d /sys/fs/cgroup/systemd ]] && \
[[ -d /run/systemd/system ]]
}