# Fixup various configurations to remove quirks
# from former versions.

_log() {
	logger -t "Config Migration" "$1"
}

_uci() {
	uci ${2:+-c $2} get "$1" 2>/dev/null
}


# Splash redirector had a wrong virtual url match
# which resulted in "No such handler"

[ "$(_uci lucid.splashredir.virtual)" == "/" ] && {
	_log "Fix splash redirector configuration"
	uci set lucid.splashredir.virtual=''
	uci commit lucid
	/etc/init.d/lucid restart
}


# Newer OLSR versions have the MinTCVtime hack active,
# ensure proper timings or olsrd won't start

FIX=0
for i in 0 1 2 3 4; do
	[ -z "$(_uci olsrd.@Interface[$i].TcInterval)" ] && \
	[ -z "$(_uci olsrd.@Interface[$i].TcValidityTime)" ] || {
		uci delete olsrd.@Interface[$i].TcInterval
		uci delete olsrd.@Interface[$i].TcValidityTime
		FIX=1
	}
done

[ "$FIX" == 1 ] && {
	_log "Fix olsrd configuration for MinTCVTime hack"
	uci commit olsrd
	/etc/init.d/olsrd restart
}


# Ensure that the community definitions are in the
# new format

[ -z "$(_uci freifunk.leipzig.mesh_network)" ] && \
[ -n "$(_uci freifunk.leipzig.mesh_network /rom/etc/config)" ] && {
	_log "Converting freifunk configuration to new format"
	cp /rom/etc/config/freifunk /etc/config/freifunk
}
