#!/bin/sh

test -n "$REBOOT" && exec reboot
test -e /sbin/sysctl && sysctl -p
test -f /proc/jffs2_bbc && echo "S" > /proc/jffs2_bbc

TOTMEM=$(awk 'sub("MemTotal:","") {print $1}' /proc/meminfo)
if [ -n "$TOTMEM" ] && [ 8192 -gt $TOTMEM ]; then
  if [ -z "$FAILSAFE" ] && [ -z "$READONLY" ]; then
    # No wl driver with FAILSAFE or READONLY:
    # Saves 1 Mb RAM to make trx upload possible
    insmod wl
  fi
else
  insmod wl
  if [ -z "$FAILSAFE" ]; then
    test -e /sbin/klogd && klogd
    test -e /sbin/syslogd && syslogd -C 16
    insmod softdog soft_margin=180
    watchdog /dev/misc/watchdog
  fi
fi

sed 's/^[^#]/insmod &/' /etc/module /etc/modules.d/* 2>&-|ash

mkdir -p /var/etc
mkdir -p /var/lock
mkdir -p /var/log
mkdir -p /var/run

ip addr add dev lo 127.0.0.1/8
ip link set dev lo up
ip link set dev eth0 promisc on

# configure the switch based on nvram if not in failsafe mode
vif=$(ls /proc/switch 2>&-|cut -d' ' -f1)
[ -z "$FAILSAFE" -a -n "$vif" ] && {
	for i in 0 1 2 3 4 5 6 7 8 9; do
		vp="$(nvram get vlan${i}ports)"
		test -n "$vp" && test -f /proc/switch/$vif/vlan/$i/ports && {
			echo "$vp" > /proc/switch/eth0/vlan/$i/ports
		}
	done
}

HOSTNAME=$(nvram get wan_hostname)
HOSTNAME=${HOSTNAME%%.*}
echo ${HOSTNAME:=OpenWrt} > /proc/sys/kernel/hostname

vconfig set_name_type VLAN_PLUS_VID_NO_PAD
