diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-07-03 22:24:52 +0200 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-07-08 22:20:09 +0200 |
commit | c3dbb13288ba97a2ba461fd0996862a9819d73d1 (patch) | |
tree | 43fd0a0d825aa17ff1f7d8615e21a3cb23ee2b01 /src/resolve/resolved-dns-transaction.h | |
parent | resolve: mdns: fix use-after-free (diff) | |
download | systemd-c3dbb13288ba97a2ba461fd0996862a9819d73d1.tar.xz systemd-c3dbb13288ba97a2ba461fd0996862a9819d73d1.zip |
Revert "resolve: mDNS transaction max attempts fix"
This reverts commit 127b26f3d8b589907ed75a34d34ab330995778f9.
The commit made mDNS queries quite unstable.
Note that, RFC 6762 does not explicitly prohibit to send a request
multiple times.
Diffstat (limited to 'src/resolve/resolved-dns-transaction.h')
-rw-r--r-- | src/resolve/resolved-dns-transaction.h | 36 |
1 files changed, 8 insertions, 28 deletions
diff --git a/src/resolve/resolved-dns-transaction.h b/src/resolve/resolved-dns-transaction.h index f4cb5d3d8d..498cabb7e5 100644 --- a/src/resolve/resolved-dns-transaction.h +++ b/src/resolve/resolved-dns-transaction.h @@ -214,31 +214,11 @@ DnsTransactionSource dns_transaction_source_from_string(const char *s) _pure_; /* Maximum attempts to send LLMNR requests, see RFC 4795 Section 2.7 */ #define LLMNR_TRANSACTION_ATTEMPTS_MAX 3 -/* Maximum attempts to send MDNS requests is one except for probe requests, see RFC 6762 Section 8.1 - * RFC 6762 differentiates between normal (single-shot/continuous) and probe requests. - * It therefore makes sense to attempt each normal query only once with no retries. - * Otherwise we'd be sending out three attempts for even a normal query. */ -#define MDNS_TRANSACTION_ATTEMPTS_MAX 1 - -#define MDNS_PROBE_TRANSACTION_ATTEMPTS_MAX 3 - -static inline unsigned dns_transaction_attempts_max(DnsProtocol p, bool probing) { - - switch (p) { - - case DNS_PROTOCOL_LLMNR: - return LLMNR_TRANSACTION_ATTEMPTS_MAX; - - case DNS_PROTOCOL_MDNS: - if (probing) - return MDNS_PROBE_TRANSACTION_ATTEMPTS_MAX; - else - return MDNS_TRANSACTION_ATTEMPTS_MAX; - - case DNS_PROTOCOL_DNS: - return DNS_TRANSACTION_ATTEMPTS_MAX; - - default: - return 0; - } -} +/* Maximum attempts to send MDNS requests, see RFC 6762 Section 8.1 */ +#define MDNS_TRANSACTION_ATTEMPTS_MAX 3 + +#define TRANSACTION_ATTEMPTS_MAX(p) (((p) == DNS_PROTOCOL_LLMNR) ? \ + LLMNR_TRANSACTION_ATTEMPTS_MAX : \ + (((p) == DNS_PROTOCOL_MDNS) ? \ + MDNS_TRANSACTION_ATTEMPTS_MAX : \ + DNS_TRANSACTION_ATTEMPTS_MAX)) |