diff options
Diffstat (limited to 'package/webif/files/usr/lib/webif/webif.sh')
-rwxr-xr-x | package/webif/files/usr/lib/webif/webif.sh | 286 |
1 files changed, 0 insertions, 286 deletions
diff --git a/package/webif/files/usr/lib/webif/webif.sh b/package/webif/files/usr/lib/webif/webif.sh deleted file mode 100755 index e6147fd6d..000000000 --- a/package/webif/files/usr/lib/webif/webif.sh +++ /dev/null @@ -1,286 +0,0 @@ -libdir=/usr/lib/webif -wwwdir=/www -cgidir=/www/cgi-bin/webif -rootdir=/cgi-bin/webif -indexpage=index.sh - -# workarounds for stupid busybox slowness on [ ] -empty() { - case "$1" in - "") return 0 ;; - *) return 255 ;; - esac -} -equal() { - case "$1" in - "$2") return 0 ;; - *) return 255 ;; - esac -} -neq() { - case "$1" in - "$2") return 255 ;; - *) return 0 ;; - esac -} -# very crazy, but also very fast :-) -exists() { - ( < $1 ) 2>&- -} - -categories() { - grep '##WEBIF:' $cgidir/.categories $cgidir/*.sh 2>/dev/null | \ - awk -v "selected=$1" \ - -v "rootdir=$rootdir" \ - -v "indexpage=$indexpage" \ - -f /usr/lib/webif/categories.awk - -} - -subcategories() { - grep -H "##WEBIF:name:$1:" $cgidir/*.sh 2>/dev/null | \ - sed -e 's,^.*/\([a-zA-Z0-9_\.\-]*\):\(.*\)$,\2:\1,' | \ - sort -n | \ - awk -v "selected=$2" \ - -v "rootdir=$rootdir" \ - -f /usr/lib/webif/subcategories.awk - -} - -update_changes() { - CHANGES=$(($( (cat /tmp/.webif/config-* ; ls /tmp/.webif/file-*) 2>&- | wc -l))) -} - -header() { - empty "$ERROR" && { - _saved_title="${SAVED:+: @TR<<Settings saved>>}" - } || { - FORM_submit=""; - ERROR="<h3>$ERROR</h3><br /><br />" - _saved_title=": @TR<<Settings not saved>>" - } - - _category="$1" - _uptime="$(uptime)" - _loadavg="${_uptime#*load average: }" - _uptime="${_uptime#*up }" - _uptime="${_uptime%%,*}" - _hostname=$(cat /proc/sys/kernel/hostname) - _version=$( grep "(" /etc/banner ) - _version="${_version%% ---*}" - _head="${3:+<div class=\"settings-block-title\"><h2>$3$_saved_title</h2></div>}" - _form="${5:+<form enctype=\"multipart/form-data\" action=\"$5\" method=\"post\"><input type=\"hidden\" name=\"submit\" value=\"1\" />}" - _savebutton="${5:+<p><input type=\"submit\" name=\"action\" value=\"@TR<<Save Changes>>\" /></p>}" - _categories=$(categories $1) - _subcategories=${2:+$(subcategories "$1" "$2")} - - empty "$REMOTE_USER" && neq "${SCRIPT_NAME#/cgi-bin/}" "webif.sh" && grep 'root:!' /etc/passwd >&- 2>&- && { - _nopasswd=1 - _form="" - _savebutton="" - } - - update_changes - cat <<EOF -Content-Type: text/html -Pragma: no-cache - -<?xml version="1.0" encoding="@TR<<Encoding|ISO-8859-1>>"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> - <head> - <title>@TR<<Web Status Console>></title> - <link rel="stylesheet" type="text/css" href="/webif.css" /> - <!--[if IE]> <style> #container { height: 100%; }</style> <![endif]--> - <meta http-equiv="Content-Type" content="text/html; charset=@TR<<Encoding|ISO-8859-1>>" /> - </head> - <body $4><div id="container"> - <div id="header"> - <div id="header-title"> - <div id="openwrt-title"><h1>Web Status Console</h1></div> - <div id="short-status"> - <h3><strong>Status:</strong></h3> - <ul> - <li><strong>@TR<<Host Name>>:</strong> $_hostname</li> - <li><strong>@TR<<Uptime>>:</strong> $_uptime</li> - <li><strong>@TR<<Load>>:</strong> $_loadavg</li> - <li><strong>@TR<<Version>>:</strong> $_version</li> - </ul> - </div> - </div> - $_categories - $_subcategories - </div> - $_form - <div id="content"> - <div class="settings-block"> - $_head - $ERROR -EOF - empty "$REMOTE_USER" && neq "${SCRIPT_NAME#/cgi-bin/}" "webif.sh" && { - empty "$FORM_passwd1" || { - echo '<pre>' - ( - echo "$FORM_passwd1" - sleep 1 - echo "$FORM_passwd2" - ) | passwd root 2>&1 && apply_passwd - echo '</pre>' - footer - exit - } - - equal "$_nopasswd" 1 && { - cat <<EOF -<br /> -<br /> -<br /> -<h3>@TR<<Warning>>: @TR<<Password_warning|you haven't set a password for the Web interface and SSH access<br />Please enter one now (the user name in your browser will be 'root').>></h3> -<br /> -<br /> -EOF - empty "$NOINPUT" && cat <<EOF -<form enctype="multipart/form-data" action="$SCRIPT_NAME" method="POST"> -<table> - <tr> - <td>@TR<<New Password>>:</td> - <td><input type="password" name="passwd1" /></td> - </tr> - <tr> - <td>@TR<<Confirm Password>>: </td> - <td><input type="password" name="passwd2" /></td> - </tr> - <tr> - <td /> - <td><input type="submit" name="action" value="@TR<<Set>>" /></td> - </tr> -</table> -</form> -EOF - footer - exit - } || { - apply_passwd - } - } -} - -footer() { - _changes=${CHANGES#0} - _changes=${_changes:+(${_changes})} - _endform=${_savebutton:+</form>} - cat <<EOF - </div> - <hr width="40%" /> - </div> - <br /> - <div id="save"> - <div class="page-save"> - <div> </div> - </div> - <div class="apply"> - <div> </div> - </div> - </div> - $_endform - </div></body> -</html> -EOF -} - -apply_passwd() { - case ${SERVER_SOFTWARE%% *} in - mini_httpd/*) - grep '^root:' /etc/passwd | cut -d: -f1,2 > $cgidir/.htpasswd - killall -HUP mini_httpd - ;; - esac -} - -display_form() { - if empty "$1"; then - awk -F'|' -f /usr/lib/webif/common.awk -f /usr/lib/webif/form.awk - else - echo "$1" | awk -F'|' -f /usr/lib/webif/common.awk -f /usr/lib/webif/form.awk - fi -} - -list_remove() { - echo "$1 " | awk ' -BEGIN { - RS=" " - FS=":" -} -($0 !~ /^'"$2"'/) && ($0 != "") { - printf " " $0 - first = 0 -}' -} - -handle_list() { - # $1 - remove - # $2 - add - # $3 - submit - # $4 - validate - - empty "$1" || { - LISTVAL="$(list_remove "$LISTVAL" "$1") " - LISTVAL="${LISTVAL# }" - LISTVAL="${LISTVAL%% }" - _changed=1 - } - - empty "$3" || { - validate "${4:-none}|$2" && { - if empty "$LISTVAL"; then - LISTVAL="$2" - else - LISTVAL="$LISTVAL $2" - fi - _changed=1 - } - } - - LISTVAL="${LISTVAL# }" - LISTVAL="${LISTVAL%% }" - LISTVAL="${LISTVAL:- }" - - if empty "$_changed"; then - return 255 - else - return 0 - fi -} - -load_settings() { - equal "$1" "nvram" || { - exists /etc/config/$1 && . /etc/config/$1 - } - exists /tmp/.webif/config-$1 && . /tmp/.webif/config-$1 -} - -validate() { - if empty "$1"; then - eval "$(awk -f /usr/lib/webif/validate.awk)" - else - eval "$(echo "$1" | awk -f /usr/lib/webif/validate.awk)" - fi -} - - -save_setting() { - exists /tmp/.webif/* || mkdir -p /tmp/.webif - oldval=$(eval "echo \${$2}") - oldval=${oldval:-$(nvram get "$2")} - grep "^$2=" /tmp/.webif/config-$1 >&- 2>&- && { - grep -v "^$2=" /tmp/.webif/config-$1 > /tmp/.webif/config-$1-new 2>&- - mv /tmp/.webif/config-$1-new /tmp/.webif/config-$1 2>&- >&- - oldval="" - } - equal "$oldval" "$3" || echo "$2=\"$3\"" >> /tmp/.webif/config-$1 -} - - -is_bcm947xx() { - read _systype < /proc/cpuinfo - equal "${_systype##* }" "BCM947XX" -} - |