local srv = require "luci.lucid.http.server"
local proto = require "luci.http.protocol"
local util = require "luci.util"
+local ip = require "luci.ip"
+local ipairs = ipairs
module "luci.lucid.http.handler.catchall"
local target = self.target
local protocol = request.env.HTTPS and "https://" or "http://"
local server = request.env.SERVER_ADDR
+
+ if request.env.REMOTE_ADDR and not request.env.REMOTE_ADDR:find(":") then
+ local compare = ip.IPv4(request.env.REMOTE_ADDR)
+ for _, iface in ipairs(request.server.interfaces) do
+ if iface.family == "inet" and iface.addr and iface.netmask then
+ if ip.IPv4(iface.addr, iface.netmask):contains(compare) then
+ server = iface.addr
+ break
+ end
+ end
+ end
+ end
+
if server:find(":") then
server = "[" .. server .. "]"
end
function Redirect.handle_HEAD(self, request)
local stat, head = self:handle_GET(request)
return stat, head
-end
\ No newline at end of file
+end
--- /dev/null
+# Fixup various configurations to remove quirks
+# from former versions.
+
+_log() {
+ logger -t "Config Migration" "$1"
+}
+
+_uci() {
+ uci 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
+}