From: Lennart Poettering Date: Wed, 24 Mar 2021 16:17:17 +0000 (+0100) Subject: resolved: use random_u64_range() for randomizing initial transaction jitter X-Git-Tag: v249-rc1~497^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9ee18bf473cdaa8128e898da3cf297b596cc9b99;p=thirdparty%2Fsystemd.git resolved: use random_u64_range() for randomizing initial transaction jitter --- diff --git a/src/resolve/resolved-dns-transaction.c b/src/resolve/resolved-dns-transaction.c index f084a70e45c..edce586e695 100644 --- a/src/resolve/resolved-dns-transaction.c +++ b/src/resolve/resolved-dns-transaction.c @@ -1941,23 +1941,20 @@ int dns_transaction_go(DnsTransaction *t) { IN_SET(t->scope->protocol, DNS_PROTOCOL_LLMNR, DNS_PROTOCOL_MDNS)) { usec_t jitter, accuracy; - /* RFC 4795 Section 2.7 suggests all queries should be - * delayed by a random time from 0 to JITTER_INTERVAL. */ + /* RFC 4795 Section 2.7 suggests all queries should be delayed by a random time from 0 to + * JITTER_INTERVAL. */ t->initial_jitter_scheduled = true; - random_bytes(&jitter, sizeof(jitter)); - switch (t->scope->protocol) { case DNS_PROTOCOL_LLMNR: - jitter %= LLMNR_JITTER_INTERVAL_USEC; + jitter = random_u64_range(LLMNR_JITTER_INTERVAL_USEC); accuracy = LLMNR_JITTER_INTERVAL_USEC; break; case DNS_PROTOCOL_MDNS: - jitter %= MDNS_JITTER_RANGE_USEC; - jitter += MDNS_JITTER_MIN_USEC; + jitter = usec_add(random_u64_range(MDNS_JITTER_RANGE_USEC), MDNS_JITTER_MIN_USEC); accuracy = MDNS_JITTER_RANGE_USEC; break; default: