#!/bin/sh # Copyright (C) 2006 OpenWrt.org alias debug=${DEBUG:-:} # newline N=" " _C=0 # valid interface? if_valid () ( ifconfig "$1" >&- 2>&- || [ "${1%%[0-9]}" = "br" ] || { debug "# missing interface '$1' ignored"; false; } ) hotplug_dev() { env -i ACTION=$1 INTERFACE=$2 /sbin/hotplug net } append() { local var="$1" local value="$2" local sep="${3:- }" eval "export ${var}=\"\${${var}:+\${${var}}${value:+$sep}}$value\"" } reset_cb() { config_cb() { return 0 } option_cb() { return 0 } } reset_cb config () { _C=$(($_C + 1)) name="${name:-cfg${_C}}" config_cb "$1" "$2" export CONFIG_SECTION="$2" export CONFIG_${CONFIG_SECTION}_TYPE="$1" } option () { local varname="$1" ; shift export CONFIG_${CONFIG_SECTION}_${varname}="$*" option_cb "$varname" "$*" } config_clear() { [ -z "$CONFIG_SECTION" ] && return for oldsetting in `set | grep ^CONFIG_${CONFIG_SECTION}_ | \ sed -e 's/\(.*\)=.*$/\1/'` ; do unset $oldsetting done unset CONFIG_SECTION } config_load() { local DIR="./" _C=0 [ \! -e "$1" -a -e "/etc/config/$1" ] && { DIR="/etc/config/" } [ -e "$DIR$1" ] && { CONFIG_FILENAME="$DIR$1" . ${CONFIG_FILENAME} } || return 1 ${CD:+cd -} >/dev/null ${CONFIG_SECTION:+config_cb} } config_get() { case "$3" in "") eval "echo \${CONFIG_${1}_${2}}";; *) eval "$1=\"\${CONFIG_${2}_${3}}\"";; esac } config_set() { export CONFIG_${1}_${2}="${3}" } load_modules() { sed 's/^[^#]/insmod &/' $* | ash 2>&- || : } find_part() { PART="$(grep "\"$1\"" /proc/mtd | awk -F: '{print $1}')" PART="${PART##mtd}" echo "${PART:+/dev/mtdblock/$PART}" } get_serial() { dd if=$(find_part board_config) bs=$((0x88)) skip=1 count=1 2>/dev/null | head -c10 } enabled() { case "$1" in 1|on|enabled) return 0;; 0|off|disabled) return 1;; *) case "$2" in 0|off|disabled) return 1;; *) return 0;; esac ;; esac } # # This functions forwards a port. The next args are required: # $1 = WAN interface # $2 = Origin Port # $3 = Destination IP # $4 = Destination Port # $5 = protocol used # # Example: open_port $WAN 8080 192.168.1.2 80 tcp # open_port() { iptables -t nat -A prerouting_rule -i $1 -p $5 --dport $2 -j DNAT --to-destination $3:$4 pdots=`echo $4 | sed 's/-/:/g'` iptables -A forwarding_rule -i $1 -p $5 --dport $pdots -d $3 -j ACCEPT }