Просмотр исходного кода

mdns: Add MDNS_STRICT_MODE config option

Strict mode was hardcoded in private header file, but it's useful for
users to enable/disable it depending on the mdns library they are using.
e.g. Avahi might not resolve the non-strict answers.
suren.gabrielyan 4 лет назад
Родитель
Сommit
0eee31546d
2 измененных файлов с 15 добавлено и 0 удалено
  1. 11 0
      components/mdns/Kconfig
  2. 4 0
      components/mdns/private_include/mdns_private.h

+ 11 - 0
components/mdns/Kconfig

@@ -56,6 +56,17 @@ menu "mDNS"
             Configures timeout for adding a new mDNS service. Adding a service
             fails if could not be completed within this time.
 
+    config MDNS_STRICT_MODE
+        bool "mDNS strict mode"
+        default "n"
+        help
+            Configures strict mode. Set this to 1 for the mDNS library to strictly follow the RFC6762:
+            Currently the only strict feature: Do not repeat original questions in response packets
+            (defined in RFC6762 sec. 6).
+            Default configuration is 0, i.e. non-strict mode, since some implementations,
+            such as lwIP mdns resolver (used by standard POSIX API like getaddrinfo, gethostbyname)
+            could not correctly resolve advertised names.
+
     config MDNS_TIMER_PERIOD_MS
         int "mDNS timer period (ms)"
         range 10 10000

+ 4 - 0
components/mdns/private_include/mdns_private.h

@@ -32,7 +32,11 @@
  * such as lwIP mdns resolver (used by standard POSIX API like getaddrinfo, gethostbyname)
  * could not correctly resolve advertised names.
  */
+#ifndef CONFIG_MDNS_STRICT_MODE
 #define MDNS_STRICT_MODE 0
+#else
+#define MDNS_STRICT_MODE 1
+#endif
 
 #if !MDNS_STRICT_MODE
 /* mDNS responders sometimes repeat queries in responses