@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmasq
PKG_UPSTREAM_VERSION:=2.90
PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION)))
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz
PKG_SOURCE_URL:=https://thekelleys.org.uk/dnsmasq/
@@ -788,6 +788,28 @@ dhcp_hostrecord_add() {
xappend "--host-record=$record"
}
+dhcp_dnsrr_add() {
+ #This adds arbitrary resource record types (of IN class) whose optional data must be hex
+ local cfg="$1"
+ local rrname rrnumber hexdata
+
+ config_get rrname "$cfg" rrname
+ [ -n "$rrname" ] || return 0
+
+ config_get rrnumber "$cfg" rrnumber
+ [ -n "$rrnumber" ] && [ "$rrnumber" -gt 0 ] || return 0
+
+ config_get hexdata "$cfg" hexdata
+
+ # dnsmasq accepts colon XX:XX:.., space XX XX .., or contiguous XXXX.. hex forms or mixtures thereof
+ if [ -n "${hexdata//[0-9a-fA-F\:\ ]/}" ]; then
+ # is invalid hex literal
+ return 1
+ fi
+
+ xappend "--dns-rr=${rrname},${rrnumber}${hexdata:+,$hexdata}"
+}
+
dhcp_relay_add() {
local cfg="$1"
local local_addr server_addr interface
@@ -1158,6 +1180,7 @@ dnsmasq_start()
config_foreach filter_dnsmasq match dhcp_match_add "$cfg"
config_foreach filter_dnsmasq domain dhcp_domain_add "$cfg"
config_foreach filter_dnsmasq hostrecord dhcp_hostrecord_add "$cfg"
+ config_foreach filter_dnsmasq dnsrr dhcp_dnsrr_add "$cfg"
[ -n "$BOOT" ] || config_foreach filter_dnsmasq relay dhcp_relay_add "$cfg"
echo >> "$CONFIGFILE_TMP"
Add support for handling of DNS RR (Resource Records) requests, which are needed for the HTTPS Type 65 records, introduced to support the DNS-based Service Discovery (DNS-SD) mechanism for HTTPS services and defined in the RFC 9460 (9.1. Query Names for HTTPS RRs). Ref: https://forum.openwrt.org/t/resolving-query-type-65-to-local-address-for-ios-clients-in-dnsmasq/179504/11 uci config usage: config dns_rr option rrname 'foo.example.com' option rrnumber '65' option hexdata '00' hexdata is optional. Available since dnsmasq 2.62 (for around 12 years at this point). Tested on 22.03.5 Signed-off-by: Paul Donald <newtwen+github@gmail.com> --- package/network/services/dnsmasq/Makefile | 2 +- .../services/dnsmasq/files/dnsmasq.init | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-)