nginx: update init script to publish services over mdns 23767/head
authorMohd Husaam Mehdi <husaam.mehdi@iopsys.eu>
Wed, 27 Mar 2024 16:07:48 +0000 (21:37 +0530)
committerChristian Marangi <ansuelsmth@gmail.com>
Wed, 27 Nov 2024 20:44:39 +0000 (21:44 +0100)
Update nginx init script to announce http related services over mdns.

Signed-off-by: Mohd Husaam Mehdi <husaam.mehdi@iopsys.eu>
[ bump PKG release, improve commit description ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
net/nginx/Makefile
net/nginx/files/nginx.init

index a3fea34d2960d7a55c55b9a2c761b914a13057bf..a96cc70e888165d6d3152c1c2f673094d7899195 100644 (file)
@@ -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/
index 012362964253cb6f35503ab2b0ce187fa5881a30..a6b6ebea3d81b37a771b30c45d6d840091303aed 100644 (file)
@@ -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
 }