mdns: update and rename package to the umdns

This update includes numerous small fixes for:
1) Interfaces setup
2) Packets parsing
3) Sending replies
Without this there were multiple problems with exchanging information
between (u)mdns and other implementations (including (u)mdns as well).

This also follows project rename to umdns which was required to avoid
confusion with Apple's mdnsd from mDNSResponder project.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
openwrt-18.06
Rafał Miłecki 2017-02-15 11:46:57 +01:00
parent 748e701b74
commit 2a6fbce121
4 changed files with 24 additions and 24 deletions

View File

@ -7,14 +7,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=mdns
PKG_NAME:=umdns
PKG_RELEASE:=1
PKG_SOURCE_URL=$(LEDE_GIT)/project/mdnsd.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2017-01-31
PKG_SOURCE_VERSION:=9cbbb141068c12ed032736e20f982e2a0fb43edc
PKG_MIRROR_HASH:=2b981bd2f695f4da63b51be33b42dcda132c6adab227eda2f68a5c534284aea9
PKG_SOURCE_DATE:=2017-02-15
PKG_SOURCE_VERSION:=0d545ed7287026584722a3f9aa855c29bd24d59f
PKG_MIRROR_HASH:=9670680a31f8eca5724da4cd12efedcbc27563b09ed4d94218f5debee1673abc
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
PKG_LICENSE:=LGPL-2.1
@ -23,7 +23,7 @@ include $(INCLUDE_DIR)/package-seccomp.mk
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/mdns
define Package/umdns
SECTION:=net
CATEGORY:=Network
TITLE:=OpenWrt Multicast DNS Daemon
@ -32,16 +32,16 @@ endef
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
define Package/mdns/conffiles
/etc/config/mdns
define Package/umdns/conffiles
/etc/config/umdns
endef
define Package/mdns/install
define Package/umdns/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config
$(INSTALL_BIN) $(PKG_BUILD_DIR)/mdns $(1)/usr/sbin/
$(INSTALL_BIN) ./files/mdns.init $(1)/etc/init.d/mdns
$(INSTALL_CONF) ./files/mdns.config $(1)/etc/config/mdns
$(call InstallSeccomp,$(1),./files/mdns.json)
$(INSTALL_BIN) $(PKG_BUILD_DIR)/umdns $(1)/usr/sbin/
$(INSTALL_BIN) ./files/umdns.init $(1)/etc/init.d/umdns
$(INSTALL_CONF) ./files/umdns.config $(1)/etc/config/umdns
$(call InstallSeccomp,$(1),./files/umdns.json)
endef
$(eval $(call BuildPackage,mdns))
$(eval $(call BuildPackage,umdns))

View File

@ -1,3 +1,3 @@
config mdns
config umdns
option jail 1
list network lan

View File

@ -6,11 +6,11 @@
START=80
USE_PROCD=1
PROG=/usr/sbin/mdns
PROG=/usr/sbin/umdns
IFACES=""
load_ifaces() {
local network="$(uci get mdns.@mdns[-1].network)"
local network="$(uci get umdns.@umdns[-1].network)"
for n in $network; do
local device
json_load "$(ifstatus $n)"
@ -27,28 +27,28 @@ reload_service() {
done
json_close_array
ubus call mdns set_config "$(json_dump)"
ubus call umdns set_config "$(json_dump)"
}
start_service() {
local network="$(uci get mdns.@mdns[-1].network)"
local network="$(uci get umdns.@umdns[-1].network)"
procd_open_instance
procd_set_param command "$PROG"
procd_set_param seccomp /etc/seccomp/mdns.json
procd_set_param seccomp /etc/seccomp/umdns.json
procd_set_param respawn
procd_open_trigger
procd_add_config_trigger "config.change" "mdns" /etc/init.d/mdns reload
procd_add_config_trigger "config.change" "umdns" /etc/init.d/umdns reload
for n in $network; do
procd_add_interface_trigger "interface.*" $n /etc/init.d/mdns reload
procd_add_interface_trigger "interface.*" $n /etc/init.d/umdns reload
done
procd_add_raw_trigger "instance.update" 5000 "/bin/ubus" "call" "mdns" "reload"
procd_add_raw_trigger "instance.update" 5000 "/bin/ubus" "call" "umdns" "reload"
procd_close_trigger
[ "$(uci get mdns.@mdns[-1].jail)" = 1 ] && procd_add_jail mdns ubus log
[ "$(uci get umdns.@umdns[-1].jail)" = 1 ] && procd_add_jail umdns ubus log
procd_close_instance
}
service_started() {
ubus -t 10 wait_for mdns
ubus -t 10 wait_for umdns
[ $? = 0 ] && reload_service
}