mdns: update and rename package to the umdns
authorRafał Miłecki <rafal@milecki.pl>
Wed, 15 Feb 2017 10:46:57 +0000 (11:46 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Wed, 15 Feb 2017 12:07:21 +0000 (13:07 +0100)
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>
package/network/services/mdns/Makefile [deleted file]
package/network/services/mdns/files/mdns.config [deleted file]
package/network/services/mdns/files/mdns.init [deleted file]
package/network/services/mdns/files/mdns.json [deleted file]
package/network/services/umdns/Makefile [new file with mode: 0644]
package/network/services/umdns/files/umdns.config [new file with mode: 0644]
package/network/services/umdns/files/umdns.init [new file with mode: 0644]
package/network/services/umdns/files/umdns.json [new file with mode: 0644]

diff --git a/package/network/services/mdns/Makefile b/package/network/services/mdns/Makefile
deleted file mode 100644 (file)
index 2c6d1b7..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-# Copyright (C) 2014 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=mdns
-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_MAINTAINER:=John Crispin <john@phrozen.org>
-PKG_LICENSE:=LGPL-2.1
-
-include $(INCLUDE_DIR)/package-seccomp.mk
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/cmake.mk
-
-define Package/mdns
-  SECTION:=net
-  CATEGORY:=Network
-  TITLE:=OpenWrt Multicast DNS Daemon
-  DEPENDS:=+libubox +libubus +libblobmsg-json
-endef
-
-TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
-
-define Package/mdns/conffiles
-/etc/config/mdns
-endef
-
-define Package/mdns/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)
-endef
-
-$(eval $(call BuildPackage,mdns))
diff --git a/package/network/services/mdns/files/mdns.config b/package/network/services/mdns/files/mdns.config
deleted file mode 100644 (file)
index b09eaf5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-config mdns
-       option jail 1
-       list network lan
diff --git a/package/network/services/mdns/files/mdns.init b/package/network/services/mdns/files/mdns.init
deleted file mode 100644 (file)
index c0f9155..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (c) 2014 OpenWrt.org
-
-. /lib/functions/network.sh
-
-START=80
-
-USE_PROCD=1
-PROG=/usr/sbin/mdns
-IFACES=""
-
-load_ifaces() {
-       local network="$(uci get mdns.@mdns[-1].network)"
-       for n in $network; do
-               local device
-               json_load "$(ifstatus $n)"
-               json_get_var device l3_device
-               echo -n "$device "
-       done
-}
-
-reload_service() {
-       json_init
-       json_add_array interfaces
-       for i in $(load_ifaces); do
-               json_add_string "" "$i"
-       done
-       json_close_array
-
-       ubus call mdns set_config "$(json_dump)"
-}
-
-start_service() {
-       local network="$(uci get mdns.@mdns[-1].network)"
-
-       procd_open_instance
-       procd_set_param command "$PROG"
-       procd_set_param seccomp /etc/seccomp/mdns.json
-       procd_set_param respawn
-       procd_open_trigger
-       procd_add_config_trigger "config.change" "mdns" /etc/init.d/mdns reload
-       for n in $network; do
-               procd_add_interface_trigger "interface.*" $n /etc/init.d/mdns reload    
-       done
-       procd_add_raw_trigger "instance.update" 5000 "/bin/ubus" "call" "mdns" "reload"
-       procd_close_trigger
-       [ "$(uci get mdns.@mdns[-1].jail)" = 1 ] && procd_add_jail mdns ubus log
-       procd_close_instance
-}
-
-service_started() {
-       ubus -t 10 wait_for mdns
-       [ $? = 0 ] && reload_service
-}
diff --git a/package/network/services/mdns/files/mdns.json b/package/network/services/mdns/files/mdns.json
deleted file mode 100644 (file)
index c22ba6f..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-       "whitelist": [
-               "read",
-               "write",
-               "open",
-               "close",
-               "time",
-               "brk",
-               "ioctl",
-               "uname",
-               "bind",
-               "connect",
-               "getsockname",
-               "recvmsg",
-               "sendmsg",
-               "sendto",
-               "setsockopt",
-               "socket",
-               "poll",
-               "fcntl64",
-               "epoll_create",
-               "epoll_ctl",
-               "epoll_wait",
-               "rt_sigaction",
-               "sigreturn",
-               "rt_sigreturn",
-               "exit_group",
-               "exit",
-               "clock_gettime"
-       ],
-       "policy": 1
-}
diff --git a/package/network/services/umdns/Makefile b/package/network/services/umdns/Makefile
new file mode 100644 (file)
index 0000000..832cf6e
--- /dev/null
@@ -0,0 +1,47 @@
+#
+# Copyright (C) 2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=umdns
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL=$(LEDE_GIT)/project/mdnsd.git
+PKG_SOURCE_PROTO:=git
+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
+
+include $(INCLUDE_DIR)/package-seccomp.mk
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/umdns
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=OpenWrt Multicast DNS Daemon
+  DEPENDS:=+libubox +libubus +libblobmsg-json
+endef
+
+TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
+
+define Package/umdns/conffiles
+/etc/config/umdns
+endef
+
+define Package/umdns/install
+       $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config
+       $(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,umdns))
diff --git a/package/network/services/umdns/files/umdns.config b/package/network/services/umdns/files/umdns.config
new file mode 100644 (file)
index 0000000..d4936bb
--- /dev/null
@@ -0,0 +1,3 @@
+config umdns
+       option jail 1
+       list network lan
diff --git a/package/network/services/umdns/files/umdns.init b/package/network/services/umdns/files/umdns.init
new file mode 100644 (file)
index 0000000..627930b
--- /dev/null
@@ -0,0 +1,54 @@
+#!/bin/sh /etc/rc.common
+# Copyright (c) 2014 OpenWrt.org
+
+. /lib/functions/network.sh
+
+START=80
+
+USE_PROCD=1
+PROG=/usr/sbin/umdns
+IFACES=""
+
+load_ifaces() {
+       local network="$(uci get umdns.@umdns[-1].network)"
+       for n in $network; do
+               local device
+               json_load "$(ifstatus $n)"
+               json_get_var device l3_device
+               echo -n "$device "
+       done
+}
+
+reload_service() {
+       json_init
+       json_add_array interfaces
+       for i in $(load_ifaces); do
+               json_add_string "" "$i"
+       done
+       json_close_array
+
+       ubus call umdns set_config "$(json_dump)"
+}
+
+start_service() {
+       local network="$(uci get umdns.@umdns[-1].network)"
+
+       procd_open_instance
+       procd_set_param command "$PROG"
+       procd_set_param seccomp /etc/seccomp/umdns.json
+       procd_set_param respawn
+       procd_open_trigger
+       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/umdns reload
+       done
+       procd_add_raw_trigger "instance.update" 5000 "/bin/ubus" "call" "umdns" "reload"
+       procd_close_trigger
+       [ "$(uci get umdns.@umdns[-1].jail)" = 1 ] && procd_add_jail umdns ubus log
+       procd_close_instance
+}
+
+service_started() {
+       ubus -t 10 wait_for umdns
+       [ $? = 0 ] && reload_service
+}
diff --git a/package/network/services/umdns/files/umdns.json b/package/network/services/umdns/files/umdns.json
new file mode 100644 (file)
index 0000000..c22ba6f
--- /dev/null
@@ -0,0 +1,32 @@
+{
+       "whitelist": [
+               "read",
+               "write",
+               "open",
+               "close",
+               "time",
+               "brk",
+               "ioctl",
+               "uname",
+               "bind",
+               "connect",
+               "getsockname",
+               "recvmsg",
+               "sendmsg",
+               "sendto",
+               "setsockopt",
+               "socket",
+               "poll",
+               "fcntl64",
+               "epoll_create",
+               "epoll_ctl",
+               "epoll_wait",
+               "rt_sigaction",
+               "sigreturn",
+               "rt_sigreturn",
+               "exit_group",
+               "exit",
+               "clock_gettime"
+       ],
+       "policy": 1
+}