summaryrefslogtreecommitdiff
path: root/src/resolve/resolved-dns-server.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-12-04 22:09:08 +0100
committerLennart Poettering <lennart@poettering.net>2018-12-07 17:16:29 +0100
commit904dcaf9d4933499f8334859f52ea8497f2d24ff (patch)
treee1b0e1c89b84630fd21c63627163f3e931f799a0 /src/resolve/resolved-dns-server.h
parent199dda9c25e02ac69c9a751a1e7b837a747cb630 (diff)
downloadsystemd-904dcaf9d4933499f8334859f52ea8497f2d24ff.tar.gz
resolved: take particular care when detaching DnsServer from its default stream
DnsStream and DnsServer have a symbiotic relationship: one DnsStream is the current "default" stream of the server (and thus reffed by it), but each stream also refs the server it is connected to. This cyclic dependency can result in weird situations: when one is destroyed/unlinked/stopped it needs to unregister itself from the other, but doing this will trigger unregistration of the other. Hence, let's make sure we unregister the stream from the server before destroying it, to break this cycle. Most likely fixes: #10725
Diffstat (limited to 'src/resolve/resolved-dns-server.h')
-rw-r--r--src/resolve/resolved-dns-server.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/resolve/resolved-dns-server.h b/src/resolve/resolved-dns-server.h
index a6022ad97f..6e73f32df4 100644
--- a/src/resolve/resolved-dns-server.h
+++ b/src/resolve/resolved-dns-server.h
@@ -151,3 +151,5 @@ void dns_server_reset_features(DnsServer *s);
void dns_server_reset_features_all(DnsServer *s);
void dns_server_dump(DnsServer *s, FILE *f);
+
+void dns_server_unref_stream(DnsServer *s);