summaryrefslogtreecommitdiffstats
path: root/interfaces-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2008-08-20 18:48:11 +0000
committerTed Trask <ttrask01@yahoo.com>2008-08-20 18:48:11 +0000
commita122509dfeb308817a75b082f76c28d5a9966008 (patch)
treeed75a266c06b7b7f829452c5dd7caaa0a3db43de /interfaces-model.lua
parent0826a04470d2cf447c76570a3d45c8caeac055c9 (diff)
downloadacf-alpine-baselayout-a122509dfeb308817a75b082f76c28d5a9966008.tar.bz2
acf-alpine-baselayout-a122509dfeb308817a75b082f76c28d5a9966008.tar.xz
Modified interfaces model to add a function to parse ip addr.
git-svn-id: svn://svn.alpinelinux.org/acf/alpine-baselayout/trunk@1386 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'interfaces-model.lua')
-rw-r--r--interfaces-model.lua24
1 files changed, 24 insertions, 0 deletions
diff --git a/interfaces-model.lua b/interfaces-model.lua
index bfa9bb8..0d27ec0 100644
--- a/interfaces-model.lua
+++ b/interfaces-model.lua
@@ -406,6 +406,15 @@ iface.iproute = function ()
return cfe({ type="longtext", value=cmdresult, label="ip route" })
end
+iface.ifconfig = function ()
+ local cmd = "PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin ifconfig"
+ local f = io.popen(cmd)
+ local cmdresult = f:read("*a")
+ f:close()
+
+ return cfe({ type="longtext", value=cmdresult, label="ifconfig" })
+end
+
-------------------------------------------------------------------------------
-- Public Methods
-------------------------------------------------------------------------------
@@ -465,3 +474,18 @@ write_file = function (newfile)
return get_file()
end
+
+get_addresses = function()
+ local ipaddr = iface.ipaddr()
+ -- now parse the result to find the interfaces and IP addresses
+ local retval = {}
+ local interface
+ for line in string.gmatch(ipaddr.value, "[^\n]*\n?") do
+ if string.find(line, "^%x+:%s+%w+:") then
+ interface=string.match(line, "^%x+:%s+(%w+):")
+ elseif string.find(line, "^%s*inet%s") then
+ table.insert(retval, {interface=interface, ipaddr=string.match(line, "^%s*inet%s+([%d%.]+)")})
+ end
+ end
+ return cfe({ type="structure", value=retval, label="Interface IP Addresses" })
+end