#!/bin/sh

printdev()
{
	eval a=\$adr_$3
	eval m=\$mtu_$3
	test -n "$a" && test -n "$m" && {
		o=
		test -n "$2" && {
			test "olsr" = "$(nvram get $2)" && o=1 || {
				test -n "$4" && {
					eval $(ipcalc -n ${a%/*}/$5)
					test $4 = $NETWORK && o=1
				}
			}
		}
		eval $(ipcalc -p -m -n -b $a)
		echo -e $1"DEV="$3"\n"$1"MTU="$m"\n"$1"ADR="${a%/*}"\n"$1"MSK="$NETMASK"\n"$1"BRC="$BROADCAST"\n"$1"NET="$NETWORK"\n"$1"PRE="$PREFIX"\n"$1"OLSR="$o
	} || {
		echo -e $1"DEV=\n"$1"MTU=\n"$1"ADR=\n"$1"MSK=\n"$1"BRC=\n"$1"NET=\n"$1"PRE=\n"$1"OLSR="
	}
}

eval $(ip link show|sed -n '
	/^[0-9]\+:/{
		s/^[0-9]\+: \+\([^ :]\+\).*mtu \+\([0-9]\+\).*/mtu_\1=\2/
		p
	}
')

eval $(ip -f inet addr show primary|sed -n '
	/^[0-9]\+:/{
		s/[0-9]\+: \+\([^:]\+\).*/adr_\1=/
		h
		n
		s/^ \+inet \+\([0-9\.\/]\+\).*/\1/
		x
		G
		s/\n//
		p
	}
')

printdev LO "" lo

wdev=$(l=$(grep : /proc/net/wireless);l=${l%:*};echo ${l##* })
printdev WIFI wifi_proto $wdev
olsrnet=$NETWORK
olsrpre=$PREFIX

ldevs=$NVRAM_lan_ifnames
test -n "$ldevs" || ldevs=$(nvram get lan_ifnames)

ldev=$NVRAM_lan_ifname
test -n "$ldev" || ldev=$(nvram get lan_ifname)
test -n "$ldev" || ldev=br0
eval mtu=\$mtu_$ldev
if [ -z "$mtu" ]; then
	set $ldevs
	ldev=$1
	test -n "$ldev" || ldev=vlan0
fi

printdev LAN lan_proto $ldev $olsrnet $olsrpre

dev=$NVRAM_wan_ifname
test -n "$dev" || dev=$(nvram get wan_ifname)
test "$dev" = "$ldev" && dev=
test "$dev" = "$wdev" && dev=
test -n "$dev" || dev=vlan1

printdev WAN wan_proto $dev $olsrnet $olsrpre
