From: Daniel Mack Date: Fri, 28 Aug 2015 14:48:37 +0000 (+0200) Subject: resolved: handle mDNS timeouts per transaction X-Git-Tag: v229~226^2~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=11a27c2ec1f3bdb1df828883365903ce47576c51;p=thirdparty%2Fsystemd.git resolved: handle mDNS timeouts per transaction mDNS packet timeouts need to be handled per transaction, not per link. Re-use the n_attempts field for this purpose, as packets timeouts should be determined by starting at 1 second, and doubling the value on each try. --- diff --git a/src/resolve/resolved-dns-transaction.c b/src/resolve/resolved-dns-transaction.c index f8063b93f1d..7c81c907f20 100644 --- a/src/resolve/resolved-dns-transaction.c +++ b/src/resolve/resolved-dns-transaction.c @@ -656,8 +656,10 @@ static usec_t transaction_get_resend_timeout(DnsTransaction *t) { assert(t->server); return t->server->resend_timeout; - case DNS_PROTOCOL_LLMNR: case DNS_PROTOCOL_MDNS: + assert(t->n_attempts > 0); + return (1 << (t->n_attempts - 1)) * USEC_PER_SEC; + case DNS_PROTOCOL_LLMNR: return t->scope->resend_timeout; default: assert_not_reached("Invalid DNS protocol.");