From 3f265caaabf61b3b78d78282b8a39632b6c40132 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 init script to announce http related services over mdns Signed-off-by: Mohd Husaam Mehdi --- net/nginx/files/nginx.init | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/net/nginx/files/nginx.init b/net/nginx/files/nginx.init index c84e0496cf..aa1a033a50 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 }