resolved: implicitly disconnect a stream from its server when a stream is closed
Previously, the callback function did this, but let's do this in the caller instead, to make this more robust, and use our new helper function for it.
This commit is contained in:
parent
808089ae3d
commit
7172e4ee1e
|
@ -64,6 +64,8 @@ static int dns_stream_complete(DnsStream *s, int error) {
|
|||
#endif
|
||||
dns_stream_stop(s);
|
||||
|
||||
dns_stream_detach(s);
|
||||
|
||||
if (s->complete)
|
||||
s->complete(s, error);
|
||||
else /* the default action if no completion function is set is to close the stream */
|
||||
|
|
|
@ -503,11 +503,7 @@ static int dns_transaction_on_stream_packet(DnsTransaction *t, DnsPacket *p) {
|
|||
}
|
||||
|
||||
static int on_stream_complete(DnsStream *s, int error) {
|
||||
_cleanup_(dns_stream_unrefp) DnsStream *p = NULL;
|
||||
|
||||
/* Do not let new transactions use this stream */
|
||||
if (s->server && s->server->stream == s)
|
||||
p = TAKE_PTR(s->server->stream);
|
||||
assert(s);
|
||||
|
||||
if (ERRNO_IS_DISCONNECT(error) && s->protocol != DNS_PROTOCOL_LLMNR) {
|
||||
log_debug_errno(error, "Connection failure for DNS TCP stream: %m");
|
||||
|
|
Loading…
Reference in a new issue