Files
mars-smart/root/cgi-bin/general.in
2026-04-21 02:12:28 +02:00

149 lines
4.4 KiB
Bash

#!/bin/sh
#
# CGI-script for general settings in nwserv.conf
#
# Copyright 2000 Wilmer van der Gaast (lintux@lintux.cx)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
. $WEBSERVE_ROOT/cgi-bin/functions
. $WEBSERVE_ROOT/smart.conf
echo Content-Type: text/html
echo
checkrefer
checkparams $*
case $* in
name )
NAME=`getconfig 2|cut -d" " -f2`
$GENFORM < $SMART_ROOT/forms/servername "$NAME"
;;
internalnet )
NUM=`getconfig 3|cut -d" " -f2`
$GENFORM < $SMART_ROOT/forms/internalnet "$NUM"
;;
version )
declare -i BURST
CURRENT=`getconfig 6 | cut -d" " -f2`
BURST=`getconfig 6 | cut -d" " -f3`
BURSTREAD=`getconfig 30 | cut -d" " -f2`
BURSTWRITE=`getconfig 30 | cut -d" " -f3`
$GENFORM < $SMART_ROOT/forms/version "$CURRENT" "$BURST" "$BURSTREAD" "$BURSTWRITE"
;;
tests )
CURRENT=`getconfig 16 | cut -d" " -f2`
$GENFORM < $SMART_ROOT/forms/tests "$CURRENT"
;;
dirs )
CURRENT=`getconfig 4[012567] | cut -d" " -f2`
$GENFORM < $SMART_ROOT/forms/dirs $CURRENT
;;
smart )
function gop()
{
while [ "$OPT" != "?" ]; do
getopts "S:U:P:" OPT
case $OPT in
S ) export SERVERNAME=$OPTARG ;;
U ) export SUPERVISOR=$OPTARG ;;
P ) export PASSWORD=$OPTARG ;;
esac;
done;
}
export `cat $WEBSERVE_CONF | grep "^WEBSERVE_SECURITY="` 2> /dev/null > /dev/null
gop $SERVER_LOGIN
$GENFORM < $SMART_ROOT/forms/smart "$MARS_CONFIG" "$NWSERV_BIN" "`digit $WEBSERVE_SECURITY`" "$SERVERNAME" "$SUPERVISOR" "$PASSWORD"
;;
configh )
MAXCONN=`getconfig 60 | cut -d" " -f2`
MAXVOLS=`getconfig 61 | cut -d" " -f2`
MAXDBES=`getconfig 63 | cut -d" " -f2`
SERIAL=`getconfig 70 | cut -d" " -f2`
APPLIC=`getconfig 71 | cut -d" " -f2`
MMAP=`getconfig 68 | cut -d" " -f2`
SAP=`getconfig 69 | cut -d" " -f2`
$GENFORM < $SMART_ROOT/forms/configh "$MAXCONN" "$MAXVOLS" "$MAXDBES" \
"$SERIAL" "$APPLIC" "$MMAP" "$SAP"
;;
timing )
$GENFORM < $SMART_ROOT/forms/timing "`getconfig 210 | cut -d\" \" -f2`" \
"`getconfig 211 | cut -d\" \" -f2`"
;;
mode )
# Aargh... Pretty messy:
declare -i DIR DUR DUW DUX DGR DGW DGX DOR DOW DOX FILE FUR FUW FUX FGR FGW FGX FOR FOW FOX
DIR="0`getconfig 9 | cut -d" " -f2`"
FILE="0`getconfig 9 | cut -d" " -f3`"
if [ "$DIR" = "0" ]; then
O_DIR="DSTD";
elif [ "$DIR" = "-1" ]; then
O_DIR="DINH";
else
O_DIR="DXXX"
DUR="$DIR & 0400"; DUW="$DIR & 0200"; DUX="$DIR & 0100"
DGR="$DIR & 0040"; DGW="$DIR & 0020"; DGX="$DIR & 0010"
DOR="$DIR & 0004"; DOW="$DIR & 0002"; DOX="$DIR & 0001";
fi
if [ "$FILE" = "0" ]; then
O_FILE="FSTD";
else
O_FILE="FXXX"
FUR="$FILE & 0400"; FUW="$FILE & 0200"; FUX="$FILE & 0100"
FGR="$FILE & 0040"; FGW="$FILE & 0020"; FGX="$FILE & 0010"
FOR="$FILE & 0004"; FOW="$FILE & 0002"; FOX="$FILE & 0001";
fi
$GENFORM < $SMART_ROOT/forms/mode \
"$O_DIR" "$DUR" "$DUW" "$DUX" "$DGR" "$DGW" "$DGX" "$DOR" "$DOW" "$DOX" \
"$O_FILE" "$FUR" "$FUW" "$FUX" "$FGR" "$FGW" "$FGX" "$FOR" "$FOW" "$FOX"
;;
guest )
declare -i i
CURRENT_GID="`getconfig 10 | cut -d" " -f2`"
CURRENT_UID="`getconfig 11 | cut -d" " -f2`"
{ i=0; for g in `cat /etc/group | cut -d: -f3`; do i=$i+1; done
echo L,GROUP,Group name,$i
cat /etc/group | sort | \
{ read LINE
while [ "$LINE" ]; do
NAME="`echo $LINE | cut -d: -f1`"
_GID="`echo $LINE | cut -d: -f3`"
echo $_GID,$NAME
if [ "$_GID" = "$CURRENT_GID" ]; then
CURRENT_GID=$_GID\_$NAME;
fi
read LINE;
done;
}
i=0; for g in `cat /etc/passwd | cut -d: -f3`; do i=$i+1; done
echo L,USER,User name,$i
cat /etc/passwd | sort | \
{ read LINE
while [ "$LINE" ]; do
NAME="`echo $LINE | cut -d: -f1`"
_UID="`echo $LINE | cut -d: -f3`"
echo $_UID,$NAME
if [ "$_UID" = "$CURRENT_UID" ]; then
CURRENT_UID=$_UID\_$NAME;
fi
read LINE;
done;
}
} | $REPLACE $SMART_ROOT/forms/guest | $GENFORM "$CURRENT_GID" "$CURRENT_UID"
;;
esac