]> git.ipfire.org Git - thirdparty/systemd.git/commit - src/resolve/resolved-dns-transaction.c
resolved: take particular care when detaching DnsServer from its default stream
authorLennart Poettering <lennart@poettering.net>
Tue, 4 Dec 2018 21:09:08 +0000 (22:09 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 7 Dec 2018 16:16:29 +0000 (17:16 +0100)
commit904dcaf9d4933499f8334859f52ea8497f2d24ff
treee1b0e1c89b84630fd21c63627163f3e931f799a0
parent199dda9c25e02ac69c9a751a1e7b837a747cb630
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
src/resolve/resolved-dns-server.c
src/resolve/resolved-dns-server.h
src/resolve/resolved-dns-transaction.c