#!/bin/sh
echo Content-type: text/html
echo

cat<<EOF
<HTML>
<HEAD>
	<TITLE>OLSR-VIZ Data</TITLE>
	<META CONTENT="text/html; charset=iso-8859-1" HTTP-EQUIV="Content-Type">
	<META CONTENT="no-cache" HTTP-EQUIV="cache-control">
</HEAD>
<BODY>

<script language='JavaScript1.2' type='text/javascript'>
EOF

# sed + txtinfo plugin
re_ip='[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}'
re_sep='[[:space:]]\{1,\}'
re_nosep='[^[:space:]]\{1,\}'
wget http://127.0.0.1:2006/all -qO - | sed -n "
/^Table: Links$/,/^$/ {
s#		#	-	#g
s#\($re_ip\)$re_sep\($re_ip\)\($re_sep$re_nosep\)\{3\}$re_sep\($re_nosep\)#parent.touch_edge(parent.touch_node('\1').set_metric(1).update(),parent.touch_node('\2').set_metric(1).update(),'\4');#p
}
/^Table: Topology$/,/^$/ {
s#\($re_ip\)$re_sep\($re_ip\)\($re_sep$re_nosep\)\{2\}$re_sep\($re_nosep\)#parent.touch_edge(parent.touch_node('\1').update(),parent.touch_node('\2').update(),'\4');#p
}
/^Table: HNA$/,/^$/ {
s#\($re_ip\)/\([0-9]\{1,\}\)$re_sep\($re_ip\)#parent.touch_hna(parent.touch_node('\3'),'\1','\2');#p
}
/^Table: Routes$/,/^$/ {
s#\($re_ip\)/32$re_sep$re_nosep$re_sep\($re_nosep\).*#parent.touch_node('\1').set_metric('\2').update();#p
}
"

hosts=$(uci show olsrd|grep hosts_file|cut -d "=" -f 2)
if [ -n $hosts ]; then
sed -n "
s#\($re_ip\)$re_sep\($re_nosep\)$re_sep.*#parent.touch_node('\1').set_desc('\2');#p
" < $hosts
fi

cat<<EOF
	parent.viz_callback();
</script>
</BODY></HTML>
EOF
