mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Fix for DHCPv6 interfaces
This commit is contained in:
parent
fa9e14e0e8
commit
f29538776a
1 changed files with 11 additions and 8 deletions
|
@ -1116,6 +1116,7 @@ function interfaces_status()
|
||||||
local multipath = section["multipath"]
|
local multipath = section["multipath"]
|
||||||
local enabled = section["auto"]
|
local enabled = section["auto"]
|
||||||
local proto = section["proto"] or ""
|
local proto = section["proto"] or ""
|
||||||
|
local ipv6 = section["ipv6"] or "0"
|
||||||
|
|
||||||
--if not ipaddr or not gateway then return end
|
--if not ipaddr or not gateway then return end
|
||||||
-- Don't show if0 in the overview
|
-- Don't show if0 in the overview
|
||||||
|
@ -1130,8 +1131,8 @@ function interfaces_status()
|
||||||
--end
|
--end
|
||||||
|
|
||||||
duplicateif = false
|
duplicateif = false
|
||||||
if ifname ~= "" and ifname ~= nil then
|
if ifname ~= "" and ifname ~= nil and not (section["ifname"] ~= nil and section["ifname"]:match("^@.*")) then
|
||||||
if allintf[ifname] and not section["ifname"]:match("^@.*") then
|
if allintf[ifname] then
|
||||||
connectivity = "ERROR"
|
connectivity = "ERROR"
|
||||||
duplicateif = true
|
duplicateif = true
|
||||||
else
|
else
|
||||||
|
@ -1151,10 +1152,10 @@ function interfaces_status()
|
||||||
if ipaddr == "" and ifname ~= nil and ifname ~= "" and proto ~= "dhcpv6" then
|
if ipaddr == "" and ifname ~= nil and ifname ~= "" and proto ~= "dhcpv6" then
|
||||||
ipaddr = ut.trim(sys.exec("ip -4 addr show dev " .. ifname .. " | grep -m 1 inet | awk '{print $2}' | cut -d'/' -s -f1 | tr -d '\n'"))
|
ipaddr = ut.trim(sys.exec("ip -4 addr show dev " .. ifname .. " | grep -m 1 inet | awk '{print $2}' | cut -d'/' -s -f1 | tr -d '\n'"))
|
||||||
end
|
end
|
||||||
if ip6addr == "" and ifname ~= nil and ifname ~= "" then
|
if ip6addr == "" and ifname ~= nil and ifname ~= "" and (ipv6 == "1" or ipv6 == "auto") then
|
||||||
ip6addr = ut.trim(sys.exec("ip -6 -br addr ls dev " .. ifname .. " | awk -F'[ /]+' '{print $3}' | tr -d '\n'"))
|
ip6addr = ut.trim(sys.exec("ip -6 -br addr ls dev " .. ifname .. " | awk -F'[ /]+' '{print $3}' | tr -d '\n'"))
|
||||||
end
|
end
|
||||||
if ip6addr == "" and ifname ~= nil and ifname ~= "" then
|
if ip6addr == "" and ifname ~= nil and ifname ~= "" and (ipv6 == "1" or ipv6 == "auto") then
|
||||||
ip6addr = ut.trim(sys.exec("ip -6 addr show dev " .. ifname .. " | grep -m 1 inet | awk '{print $2}' | cut -d'/' -s -f1 | tr -d '\n'"))
|
ip6addr = ut.trim(sys.exec("ip -6 addr show dev " .. ifname .. " | grep -m 1 inet | awk '{print $2}' | cut -d'/' -s -f1 | tr -d '\n'"))
|
||||||
end
|
end
|
||||||
if ipaddr == "" and ip6addr == "" then
|
if ipaddr == "" and ip6addr == "" then
|
||||||
|
@ -1199,13 +1200,15 @@ function interfaces_status()
|
||||||
if proto ~= "dhcpv6" then
|
if proto ~= "dhcpv6" then
|
||||||
gateway = ut.trim(sys.exec("ip -4 r list dev " .. ifname .. " | grep via | grep -v default | grep -v metric | awk '{print $1}' | tr -d '\n'"))
|
gateway = ut.trim(sys.exec("ip -4 r list dev " .. ifname .. " | grep via | grep -v default | grep -v metric | awk '{print $1}' | tr -d '\n'"))
|
||||||
end
|
end
|
||||||
gateway6 = ut.trim(sys.exec("ip -6 r list dev " .. ifname .. " | grep via | grep -v default | grep -v metric | awk '{print $1}' | tr -d '\n'"))
|
if ipv6 == "1" or ipv6 == "auto" then
|
||||||
|
gateway6 = ut.trim(sys.exec("ip -6 r list dev " .. ifname .. " | grep via | grep -v default | grep -v metric | awk '{print $1}' | tr -d '\n'"))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if gateway == "" and proto ~= "dhcpv6" then
|
if gateway == "" and proto ~= "dhcpv6" then
|
||||||
gateway = get_gateway(interface)
|
gateway = get_gateway(interface)
|
||||||
end
|
end
|
||||||
if gateway == "" and ifname ~= nil and ifname ~= "" and proto ~= "dhcpv6" then
|
if gateway == "" and ifname ~= nil and ifname ~= "" and ipv6 ~= "1" and ipv6 ~= "auto" then
|
||||||
if fs.access("/sys/class/net/" .. ifname) then
|
if fs.access("/sys/class/net/" .. ifname) then
|
||||||
gateway = ut.trim(sys.exec("ip -4 r list dev " .. ifname .. " | grep kernel | awk '/proto kernel/ {print $1}' | grep -v / | tr -d '\n'"))
|
gateway = ut.trim(sys.exec("ip -4 r list dev " .. ifname .. " | grep kernel | awk '/proto kernel/ {print $1}' | grep -v / | tr -d '\n'"))
|
||||||
if gateway == "" then
|
if gateway == "" then
|
||||||
|
@ -1213,10 +1216,10 @@ function interfaces_status()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if gateway6 == "" then
|
if gateway6 == "" and (ipv6 == "1" or ipv6 == "auto") then
|
||||||
gateway6 = get_gateway6(interface)
|
gateway6 = get_gateway6(interface)
|
||||||
end
|
end
|
||||||
if gateway6 == "" and ifname ~= nil and ifname ~= "" then
|
if gateway6 == "" and ifname ~= nil and ifname ~= "" and (ipv6 == "1" or ipv6 == "auto") then
|
||||||
if fs.access("/sys/class/net/" .. ifname) then
|
if fs.access("/sys/class/net/" .. ifname) then
|
||||||
gateway6 = ut.trim(sys.exec("ip -6 r list dev " .. ifname .. " | grep kernel | awk '/proto kernel/ {print $1}' | grep -v / | tr -d '\n'"))
|
gateway6 = ut.trim(sys.exec("ip -6 r list dev " .. ifname .. " | grep kernel | awk '/proto kernel/ {print $1}' | grep -v / | tr -d '\n'"))
|
||||||
if gateway6 == "" then
|
if gateway6 == "" then
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue