From 187bbe4bbec7cb22c33df9c805c829e939892016 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Tue, 22 Apr 2008 16:07:02 +0000 Subject: * ffluci.sys.net.hexip4: Added option for big endian support * ffluci.cbi.TypedSection.cfgsections: Check whether there are any configuration sections before iterating * ffluci.view.public_status.routes: Added "fix" for big endian systems --- core/src/ffluci/cbi.lua | 5 +++++ core/src/ffluci/sys.lua | 19 +++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) (limited to 'core/src/ffluci') diff --git a/core/src/ffluci/cbi.lua b/core/src/ffluci/cbi.lua index f09d48ad7a..5b38d1b50a 100644 --- a/core/src/ffluci/cbi.lua +++ b/core/src/ffluci/cbi.lua @@ -367,7 +367,12 @@ end -- Return all matching UCI sections for this TypedSection function TypedSection.cfgsections(self) local sections = {} + local map = self.map:get() + if not map[".order"] then + return sections + end + for i, k in pairs(map[".order"]) do if map[k][".type"] == self.sectiontype then if self:checkscope(k) then diff --git a/core/src/ffluci/sys.lua b/core/src/ffluci/sys.lua index c97017d8d0..44855f8ef3 100644 --- a/core/src/ffluci/sys.lua +++ b/core/src/ffluci/sys.lua @@ -143,8 +143,8 @@ function net.routes() return _parse_delimited_table(io.lines("/proc/net/route")) end --- Returns the numeric IP to a given hexstring -function net.hexip4(hex) +-- Returns the numeric IP to a given hexstring (little endian) +function net.hexip4(hex, bigendian) if #hex ~= 8 then return nil end @@ -152,10 +152,17 @@ function net.hexip4(hex) local hexdec = ffluci.bits.Hex2Dec local ip = "" - ip = ip .. tostring(hexdec(hex:sub(7,8))) .. "." - ip = ip .. tostring(hexdec(hex:sub(5,6))) .. "." - ip = ip .. tostring(hexdec(hex:sub(3,4))) .. "." - ip = ip .. tostring(hexdec(hex:sub(1,2))) + if bigendian then + ip = ip .. tostring(hexdec(hex:sub(1,2))) .. "." + ip = ip .. tostring(hexdec(hex:sub(3,4))) .. "." + ip = ip .. tostring(hexdec(hex:sub(5,6))) .. "." + ip = ip .. tostring(hexdec(hex:sub(7,8))) + else + ip = ip .. tostring(hexdec(hex:sub(7,8))) .. "." + ip = ip .. tostring(hexdec(hex:sub(5,6))) .. "." + ip = ip .. tostring(hexdec(hex:sub(3,4))) .. "." + ip = ip .. tostring(hexdec(hex:sub(1,2))) + end return ip end -- cgit v1.2.3