summaryrefslogtreecommitdiffstats
path: root/src/resolve/resolved-dns-transaction.h
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2022-07-03 22:24:52 +0200
committerYu Watanabe <watanabe.yu+github@gmail.com>2022-07-08 22:20:09 +0200
commitc3dbb13288ba97a2ba461fd0996862a9819d73d1 (patch)
tree43fd0a0d825aa17ff1f7d8615e21a3cb23ee2b01 /src/resolve/resolved-dns-transaction.h
parentresolve: mdns: fix use-after-free (diff)
downloadsystemd-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.h36
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))