From 9ee18bf473cdaa8128e898da3cf297b596cc9b99 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 24 Mar 2021 17:17:17 +0100 Subject: [PATCH] resolved: use random_u64_range() for randomizing initial transaction jitter --- src/resolve/resolved-dns-transaction.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) 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: -- 2.47.3