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

View file

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

View file

@ -6,11 +6,11 @@
START=80 START=80
USE_PROCD=1 USE_PROCD=1
PROG=/usr/sbin/mdns PROG=/usr/sbin/umdns
IFACES="" IFACES=""
load_ifaces() { load_ifaces() {
local network="$(uci get mdns.@mdns[-1].network)" local network="$(uci get umdns.@umdns[-1].network)"
for n in $network; do for n in $network; do
local device local device
json_load "$(ifstatus $n)" json_load "$(ifstatus $n)"
@ -27,28 +27,28 @@ reload_service() {
done done
json_close_array json_close_array
ubus call mdns set_config "$(json_dump)" ubus call umdns set_config "$(json_dump)"
} }
start_service() { start_service() {
local network="$(uci get mdns.@mdns[-1].network)" local network="$(uci get umdns.@umdns[-1].network)"
procd_open_instance procd_open_instance
procd_set_param command "$PROG" 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_set_param respawn
procd_open_trigger 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 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 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 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 procd_close_instance
} }
service_started() { service_started() {
ubus -t 10 wait_for mdns ubus -t 10 wait_for umdns
[ $? = 0 ] && reload_service [ $? = 0 ] && reload_service
} }