diff --git a/net/nginx/Makefile b/net/nginx/Makefile index a3fea34d2960d7..a96cc70e888165 100644 --- a/net/nginx/Makefile +++ b/net/nginx/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=nginx PKG_VERSION:=1.26.1 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=nginx-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://nginx.org/download/ diff --git a/net/nginx/files/nginx.init b/net/nginx/files/nginx.init index 012362964253cb..a6b6ebea3d81b3 100644 --- a/net/nginx/files/nginx.init +++ b/net/nginx/files/nginx.init @@ -75,6 +75,53 @@ nginx_init() { logger -t "nginx_init" -p "daemon.info" "using ${CONF} (the test is ok)" } +add_mdns() { + local cfg="$1" + local port enabled service + + config_get enabled "$cfg" enabled + config_get port "$cfg" listen + + port=$(echo "$port" | head -n1 | awk '{print $1;}') + + + if [ "$enabled" != "0" ] && [ "$enabled" != "false" ] && [ -n "$port" ]; then + case "$port" in + "80") + service="http" + ;; + "8080") + service="http-alt" + ;; + "443") + service="https" + ;; + "8443") + service="pcsync-https" + ;; + *) + service="custom-http-$port" + ;; + esac + + procd_add_mdns_service "$service" "tcp" "$port" "daemon=nginx" + fi +} + +configure_mdns() { + local mdns="$(uci -q get nginx.global.mdns)" + + if [ "$mdns" = "1" ] || [ "$mdns" = "true" ]; then + procd_open_data + json_add_object "mdns" + + config_load nginx + config_foreach add_mdns server + + json_close_object + procd_close_data + fi +} start_service() { nginx_init @@ -86,6 +133,9 @@ start_service() { procd_set_param file "${CONF}" "${CONF_DIR}*.crt" "${CONF_DIR}*.key" \ "${CONF_DIR}*.conf" "${CONF_DIR}*.locations" procd_set_param respawn + + configure_mdns + procd_close_instance }