- Add VSL support,

- Display VSL tab in VPN Admin Board,
- Support now rx3-base 1.2.0.
This commit is contained in:
2026-09-11 20:21:19 +02:00
parent 3dc7f6bdd5
commit 6a3a76a18b
17 changed files with 431 additions and 245 deletions

137
www/cgi-bin/vpn-admin_board.cgi Normal file → Executable file
View File

@@ -37,8 +37,8 @@
# Global Variables
#-----------------------------------------------------------------------------------------------------------------------------------
declare -g VERSION="1.0.0"
declare -g NAME="vpn-admin_board.cgi"
declare -g VERSION="1.2.4"
declare -g NAME="VPN Admin Board"
declare -g DEBUG=""
#declare -g DEBUG="echo"
@@ -104,6 +104,26 @@ vab_header_print()
echo " <meta http-equiv=\"REFRESH\" content=\"1; URL=${REDIRECT}\">"
fi
echo " <style>"
echo " #vsl-tab td { font: 12px/1.5em arial, helvetica, verdana, sans-serif; color: #333; }"
echo " #vsl-tab table { width: 100%; border: 1px solid #919191; }"
echo " #vsl-tab th { background-color: #919191; color: #fff; }"
echo " #vsl-tab table th:first-child, #vsl-tab table td:first-child { text-align: left; }"
echo " #vsl-tab table th:last-child, #vsl-tab table td:last-child { text-align: right; }"
echo " #vsl-tab th.state { text-align: center; width: 44px; }"
echo " #vsl-tab th.desc { width: 200px; }"
echo " #vsl-tab th.name { width: 200px; }"
echo " #vsl-tab th.action { }"
echo " #vsl-tab td, th { padding: 4px 8px; border-bottom: 1px solid #fff; }"
echo " #vsl-tab tr td { background-color: #FBFBFB; }"
echo " #vsl-tab tr.shade td { background-color: #F0F0F0; }"
echo " #vsl { position: relative; display: inline-block; cursor: pointer; }"
echo " #vsl-tab { visibility: hidden; width: fit-content; background: #00000000; color: white; padding: 2px; border-radius: 4px; position: absolute; z-index: 1; right: auto; left: 0; top: auto; bottom: 100%; transform: none; opacity: 0; transition: opacity 0.3s; }"
echo " #vsl:hover #vsl-tab { visibility: visible; opacity: 1; }"
echo " #vsl-tab table td, #vsl-tab table th { white-space: nowrap; padding: 4px 8px; border: 0px solid #666; font-size: 12px; }"
echo " #vsl-tab table th { background: #333; }"
echo " #vsl-tab table { border-collapse: collapse; width: fit-content; max-width: 500px; overflow-x: auto; }"
echo " </style>"
echo " </HEAD>"
echo " <BODY>"
;;
@@ -147,6 +167,59 @@ vab_footer_print()
case "${FORMAT}"
in
"html")
time_out=$(date +%s%N)
elaps=$(( time_out - TIME_IN))
elaps_sec=$(( elaps / 1000000000))
elaps_mili=$(( ( elaps / 1000000) - ( elaps_sec * 1000)))
echo " <P>"
echo " <BR>"
echo " <BR>"
echo " <div id=\"vsl\">Page generated by <b>${NAME}</b> V <b>${VERSION}</b>"
echo " <div id=\"vsl-tab\">"
echo " <table>"
echo " <thead>"
echo " <tr>"
echo " <th>Id</th>"
echo " <th>Name</th>"
echo " <th>Version</th>"
if [[ "${ADMIN}" == "true" ]]
then
export VERBOSE="TRUE"
echo " <th>File</th>"
fi
echo " </tr>"
echo " </thead>"
echo " <tbody>"
vsl_html_dump "TRUE" ""
unset VERBOSE
echo " </tbody>"
echo " </table>"
echo " </div>"
printf " in <b>%d.%03d</b> seconds\n" "${elaps_sec}" "${elaps_mili}"
echo " </div>"
echo " </P>"
echo ""
echo " <HR>"
echo ""
echo " <P>"
echo " <A HREF=\"/tdsots/admin/\">Rx3 Admin</A>"
echo " </P>"
echo ""
echo " <HR>"
echo ""
echo " <P>"
echo " <A HREF=\"http://www.hertgen.com/anybrowser/\"> <IMG SRC=\"/images/anyb09.png\" ALT=\"Best Viewed With Any Browser\"></A>"
echo " <A HREF=\"http://validator.w3.org/check?uri=referer\"><IMG SRC=\"/images/valid-html401.png\" ALT=\"Valid HTML 4.01!\"></A>"
echo " <A HREF=\"http://jigsaw.w3.org/css-validator/\"> <IMG SRC=\"/images/valid-css.png\" ALT=\"Valid CSS!\"></A>"
echo " </P>"
echo " </BODY>"
echo ""
echo "</HTML>"
@@ -666,31 +739,6 @@ vab_main_board_print()
fi
echo ""
echo " </P>"
time_out=$(date +%s%N)
elaps=$(( time_out - TIME_IN))
elaps_sec=$(( elaps / 1000000000))
elaps_mili=$(( ( elaps / 1000000) - ( elaps_sec * 1000)))
echo " <P>"
echo " <BR>"
echo " <BR>"
printf " Page generated in %d.%03d seconds\n" "${elaps_sec}" "${elaps_mili}"
echo " </P>"
echo ""
echo " <HR>"
echo ""
echo " <P>"
echo " <A HREF=\"/tdsots/admin/\">Rx3 Admin</A>"
echo " </P>"
echo ""
echo " <HR>"
echo ""
echo " <P>"
echo " <A HREF=\"http://www.hertgen.com/anybrowser/\"> <IMG SRC=\"/images/anyb09.png\" ALT=\"Best Viewed With Any Browser\"></A>"
echo " <A HREF=\"http://validator.w3.org/check?uri=referer\"><IMG SRC=\"/images/valid-html401.png\" ALT=\"Valid HTML 4.01!\"></A>"
echo " <A HREF=\"http://jigsaw.w3.org/css-validator/\"> <IMG SRC=\"/images/valid-css.png\" ALT=\"Valid CSS!\"></A>"
echo " </P>"
fi
}
@@ -709,21 +757,22 @@ vab_query_string_parse()
local arg
local i
CMD=""
FORMAT=""
USER=""
STATUS=""
IP=""
VPN=""
TYPE=""
REDIRECT=""
CMD_STATUS=""
ADMIN=""
FILTER=""
DEFROUTE=""
FILENAME=""
CMD=""
FORMAT=""
USER=""
STATUS=""
IP=""
VPN=""
TYPE=""
REDIRECT=""
CMD_STATUS=""
ADMIN=""
FILTER=""
DEFROUTE=""
FILENAME=""
if [[ "${QUERY_STRING}" != "" ]]
if [[ "${QUERY_STRING:-}" != "" ]]
then
local OIFS="${IFS}"
IFS="&"
@@ -958,6 +1007,12 @@ vab_command_handler()
# Main
#-----------------------------------------------------------------------------------------------------------------------------------
QUERY_STRING=${QUERY_STRING:-}
REMOTE_USER=${REMOTE_USER:-}
vsl_add
vab_query_string_parse
network_init