#!/bin/sh
# DD-WRT V22 Preinit script by Sebastian Gottschall (BrainSlayer). (some parts are taken from OpenWRT)

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/jffs/sbin:/jffs/bin:/jffs/usr/sbin:/jffs/usr/bin

nvram set expert_mode=1

if [ -z "$(nvram get enable_jffs2)"]; then
    nvram set enable_jffs2=0
    nvram set clean_jffs2=0
    nvram set sys_enable_jffs2=0
    nvram set sys_clean_jffs2=0
    nvram commit
fi

#if [ "$(nvram get sys_clean_jffs2)" = "1" ]; then
#    nvram set sys_clean_jffs2=0
#    nvram commit
#    mtd unlock mtd4
#    mtd erase ddwrt >&- 
#fi

#if [ "$(nvram get sys_enable_jffs2)" = "1" ]; then
#    mtd unlock mtd4
#    mount -t jffs2 /dev/mtdblock/4 /jffs
#    jdev=$(mount | awk '/jffs2/ {print $3}')
#    if [ -z "$jdev" ]; then
#	    echo -n "Creating jffs2 partition... "
#	    mtd erase ddwrt >&- 
#	    mount -t jffs2 /dev/mtdblock/4 /jffs
#	    echo "done"
#    else
#	    echo "jffs2 partition is mounted"
#    fi
#
#fi



# validate settings and adjust if needed
if [ -z "$(nvram get ip_conntrack_max)"]; then
    nvram set ip_conntrack_max=4096
    nvram set ip_conntrack_tcp_timeouts=3600
    nvram set ip_conntrack_udp_timeouts=3600
    nvram commit
fi

# read setting from nvram
CONNTRACK_MAX=$(nvram get ip_conntrack_max)
CONNTRACK_TCP_TIMEOUTS=$(nvram get ip_conntrack_tcp_timeouts)
CONNTRACK_UDP_TIMEOUTS=$(nvram get ip_conntrack_udp_timeouts)

# adjust conntrack settings
/bin/echo $CONNTRACK_MAX > /proc/sys/net/ipv4/ip_conntrack_max
/bin/echo "3600 $CONNTRACK_TCP_TIMEOUTS 120 60 120 120 10 60 30 120" > /proc/sys/net/ipv4/ip_conntrack_tcp_timeouts
/bin/echo "65 $CONNTRACK_UDP_TIMEOUTS" > /proc/sys/net/ipv4/ip_conntrack_udp_timeouts
/bin/echo 1 > /proc/sys/net/ipv4/tcp_westwood
