#!/bin/sh

test -e /sbin/sysctl && sysctl -p
test -f /proc/jffs2_bbc && echo "S" > /proc/jffs2_bbc

TOTMEM=$(grep MemTotal: /proc/meminfo|if read line;then set $line;echo $2;fi)
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

IFS=\;
for i in $(nvram get ff_ipkg);do
	echo $i>>/var/etc/ipkg.conf
done
unset IFS
cat>>/var/etc/ipkg.conf<<EOF
src freifunk http://styx.commando.de/sven-ola/ipkg/packages
src whiterussian http://downloads.openwrt.org/whiterussian/packages
src non-free http://downloads.openwrt.org/whiterussian/packages/non-free
dest root /
dest ram /tmp
EOF

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:=Freifunk} > /proc/sys/kernel/hostname

vconfig set_name_type VLAN_PLUS_VID_NO_PAD
