From d7e86e79d976459a3bf49e169c0bb8d8d6f0eb8f Mon Sep 17 00:00:00 2001 From: Mohd Husaam Mehdi Date: Wed, 27 Mar 2024 21:37:48 +0530 Subject: [PATCH] nginx: update init script to publish services over mdns Update nginx init script to announce http related services over mdns. Signed-off-by: Mohd Husaam Mehdi [ bump PKG release, improve commit description ] Signed-off-by: Christian Marangi --- net/nginx/Makefile | 2 +- net/nginx/files/nginx.init | 50 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/net/nginx/Makefile b/net/nginx/Makefile index a3fea34d29..a96cc70e88 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 0123629642..a6b6ebea3d 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 } -- 2.30.2