Rebased from upstream / out of band repository.
[librecmc/librecmc.git] / package / network / services / uhttpd / files / uhttpd.init
index 6b8be1c7e4a27aa8c91f6c801af0e8c01ba9214c..75301e0282adeb07704bf40b991fd47edd763206 100755 (executable)
@@ -52,7 +52,7 @@ generate_keys() {
        [ -n "$GENKEY_CMD" ] && {
                $GENKEY_CMD \
                        -days ${days:-730} -newkey rsa:${bits:-2048} -keyout "${UHTTPD_KEY}.new" -out "${UHTTPD_CERT}.new" \
-                       -subj /C="${country:-DE}"/ST="${state:-Saxony}"/L="${location:-Leipzig}"/O="${commonname:-Lede}$UNIQUEID"/CN="${commonname:-Lede}"
+                       -subj /C="${country:-ZZ}"/ST="${state:-Somewhere}"/L="${location:-Unknown}"/O="${commonname:-libreCMC}$UNIQUEID"/CN="${commonname:-libreCMC}"
                sync
                mv "${UHTTPD_KEY}.new" "${UHTTPD_KEY}"
                mv "${UHTTPD_CERT}.new" "${UHTTPD_CERT}"
@@ -74,6 +74,18 @@ create_httpauth() {
        haveauth=1
 }
 
+append_lua_prefix() {
+       local v="$1"
+       local prefix="${v%%=*}"
+       local handler="${v#*=}"
+
+       if [ "$prefix" != "$handler" ] && [ -n "$prefix" ] && [ -f "$handler" ]; then
+               procd_append_param command -l "$prefix" -L "$handler"
+       else
+               echo "Skipping invalid Lua prefix \"$v\"" >&2
+       fi
+}
+
 start_instance()
 {
        UHTTPD_CERT=""
@@ -101,14 +113,20 @@ start_instance()
        fi
 
        append_arg "$cfg" home "-h"
-       append_arg "$cfg" realm "-r" "${realm:-OpenWrt}"
+       append_arg "$cfg" realm "-r" "${realm:-libreCMC}"
        append_arg "$cfg" config "-c"
        append_arg "$cfg" cgi_prefix "-x"
        [ -f /usr/lib/uhttpd_lua.so ] && {
-               config_get handler "$cfg" lua_handler
-               [ -f "$handler" ] && append_arg "$cfg" lua_prefix "-l" && {
-                       procd_append_param command "-L" "$handler"
-               }
+               local len
+               config_get len "$cfg" lua_prefix_LENGTH
+
+               if [ -n "$len" ]; then
+                       config_list_foreach "$cfg" lua_prefix append_lua_prefix
+               else
+                       config_get prefix "$cfg" lua_prefix
+                       config_get handler "$cfg" lua_handler
+                       append_lua_prefix "$prefix=$handler"
+               fi
        }
        [ -f /usr/lib/uhttpd_ubus.so ] && {
                append_arg "$cfg" ubus_prefix "-u"