summaryrefslogtreecommitdiff
path: root/package/base-files/files/bin
diff options
context:
space:
mode:
Diffstat (limited to 'package/base-files/files/bin')
-rwxr-xr-xpackage/base-files/files/bin/ipcalc32
-rwxr-xr-xpackage/base-files/files/bin/login18
-rwxr-xr-xpackage/base-files/files/bin/uci178
3 files changed, 228 insertions, 0 deletions
diff --git a/package/base-files/files/bin/ipcalc b/package/base-files/files/bin/ipcalc
new file mode 100755
index 0000000..e8efa6b
--- /dev/null
+++ b/package/base-files/files/bin/ipcalc
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+awk -f /usr/lib/common.awk -f - $* <<EOF
+BEGIN {
+ ipaddr=ip2int(ARGV[1])
+ netmask=ip2int(ARGV[2])
+ network=and(ipaddr,netmask)
+ broadcast=or(network,compl(netmask))
+
+ start=or(network,and(ip2int(ARGV[3]),compl(netmask)))
+ limit=network+1
+ if (start<limit) start=limit
+
+ end=start+ARGV[4]
+ limit=or(network,compl(netmask))-1
+ if (end>limit) end=limit
+
+ print "IP="int2ip(ipaddr)
+ print "NETMASK="int2ip(netmask)
+ print "BROADCAST="int2ip(broadcast)
+ print "NETWORK="int2ip(network)
+ print "PREFIX="32-bitcount(compl(netmask))
+
+ # range calculations:
+ # ipcalc <ip> <netmask> <start> <num>
+
+ if (ARGC > 3) {
+ print "START="int2ip(start)
+ print "END="int2ip(end-1)
+ }
+}
+EOF
diff --git a/package/base-files/files/bin/login b/package/base-files/files/bin/login
new file mode 100755
index 0000000..ff5d366
--- /dev/null
+++ b/package/base-files/files/bin/login
@@ -0,0 +1,18 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+
+grep '^root:[^!]' /etc/passwd >&- 2>&-
+[ "$?" = "0" -a -z "$FAILSAFE" ] &&
+{
+ echo "Login failed."
+ exit 0
+} || {
+cat << EOF
+ === IMPORTANT ============================
+ Use 'passwd' to set your login password
+ this will disable telnet and enable SSH
+ ------------------------------------------
+EOF
+}
+
+exec /bin/ash --login
diff --git a/package/base-files/files/bin/uci b/package/base-files/files/bin/uci
new file mode 100755
index 0000000..9b50380
--- /dev/null
+++ b/package/base-files/files/bin/uci
@@ -0,0 +1,178 @@
+#!/bin/sh
+# Shell script for interacting with config files
+#
+# Copyright (C) 2006 by Fokus Fraunhofer <carsten.tittel@fokus.fraunhofer.de>
+# Copyright (C) 2006 by Felix Fietkau <nbd@openwrt.org>
+#
+# 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
+
+. /etc/functions.sh
+include /lib/config
+
+SEP="[^0-9A-Za-z_]"
+
+do_get() {
+ local PACKAGE
+ local CONFIG
+ local OPTION
+ local DUMMY
+
+ strtok "$*" PACKAGE . CONFIG . OPTION $SEP DUMMY
+
+ [ $? -ne 3 ] && {
+ uci_usage get
+ exit 1
+ }
+
+ uci_load "$PACKAGE"
+ config_get "$CONFIG" "$OPTION"
+}
+
+do_set() {
+ local PACKAGE
+ local CONFIG
+ local OPTION
+ local VALUE
+
+ strtok "$1" PACKAGE . CONFIG = VALUE
+ [ $? -ne 3 ] && {
+ uci_usage set
+ exit 1
+ }
+
+ strtok "$CONFIG" CONFIG . OPTION
+
+ if [ $? -eq 1 ]; then
+ uci_add "$PACKAGE" "$VALUE" "$CONFIG"
+ else
+ uci_set "$PACKAGE" "$CONFIG" "$OPTION" "$VALUE"
+ fi
+}
+
+do_rename() {
+ [ $# -ne 3 ] && {
+ uci_usage rename
+ exit 1
+ }
+ uci_rename "$@"
+}
+
+do_remove() {
+ local PACKAGE
+ local CONFIG
+ local OPTION
+ local DUMMY
+
+ strtok "$*" PACKAGE . CONFIG . OPTION $SEP DUMMY
+ [ $? -ne 3 -a $? -ne 2 ] && {
+ uci_usage rename
+ exit 1
+ }
+ uci_remove "$PACKAGE" "$CONFIG" ${OPTION:+"$OPTION"}
+}
+
+do_commit() {
+ local PACKAGE="$1"
+ for package in ${PACKAGE:-$(cd /tmp/.uci; ls)}; do
+ uci_commit "$package"
+ done
+}
+
+do_show() {
+ local PACKAGE
+ local CONFIG
+ local DUMMY
+
+ strtok "$*" PACKAGE . CONFIG $SEP DUMMY
+ [ $? -gt 2 ] && {
+ uci_usage show
+ exit 1
+ }
+
+ for package in ${PACKAGE:-$(cd /etc/config; ls)}; do
+ SECTION=""
+
+ config_cb() {
+ if [ -z "$CONFIG" -o "$CONFIG" = "$2" ]; then
+ append SECTION "$2"
+ option_cb() {
+ append "${CONFIG_SECTION}_VARS" "$1"
+ }
+ else
+ option_cb() {
+ return 0
+ }
+ fi
+ }
+
+ uci_load "$package"
+
+ for section in $SECTION; do
+ config_get type "$section" TYPE
+ [ -z "$type" ] && continue
+ echo "$package.$section=$type"
+ eval "VARS=\"\${${section}_VARS}\""
+ for var in $VARS; do
+ config_get val "$section" "$var"
+ [ -n "$val" ] && {
+ echo "$package.$section.$var=$val"
+ config_set "$section" "$var" ""
+ }
+ done
+ config_set "$section" TYPE ""
+ done
+ done
+}
+
+uci_usage() {
+ case "$1" in
+ show) echo "$0 show [<package>[.<config>]]";;
+ get) echo "$0 get <package>.<config>.<option>";;
+ set) echo "$0 set <package>.<config>[.<option>]=<value>";;
+ del) echo "$0 del <package>.<config>[.<option>]";;
+ rename) echo "$0 rename <package> <config> <name>";;
+ commit) echo "$0 commit [<package> ... ]";;
+ *)
+ echo "Syntax: $0 <command> <arguments...>"
+ echo
+ uci_usage show
+ uci_usage get
+ uci_usage set
+ uci_usage del
+ uci_usage rename
+ uci_usage commit
+ echo
+ exit 1
+ ;;
+ esac
+}
+
+if [ $# -eq 0 ] ; then
+ uci_usage
+ exit 0
+fi
+
+local CMD="$1"
+shift
+case "$CMD" in
+ set) do_set "$@";;
+ del) do_remove "$@";;
+ rename) do_rename "$@";;
+ get) do_get "$@";;
+ show) do_show "$@";;
+ commit) do_commit "$@";;
+ *) uci_usage;;
+esac
+exit 0