summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2008-12-10 18:28:02 +0000
committerTed Trask <ttrask01@yahoo.com>2008-12-10 18:28:02 +0000
commite7396f95b6067ec4d931b269e68742e9eea31921 (patch)
treecdca31830735e4f685ab07d3fa1fb3dc325dc69c
parentff2f0fbb017decbba5f2fd23a3f6c05d07c0e457 (diff)
downloadacf-openssh-e7396f95b6067ec4d931b269e68742e9eea31921.tar.bz2
acf-openssh-e7396f95b6067ec4d931b269e68742e9eea31921.tar.xz
Modified openssh to remove unintended dependence on tinydns.
git-svn-id: svn://svn.alpinelinux.org/acf/openssh/trunk@1635 ab2d0c66-481e-0410-8bed-d214d4d58bed
-rw-r--r--openssh-connectedpeers-html.lsp2
-rw-r--r--openssh-model.lua27
2 files changed, 17 insertions, 12 deletions
diff --git a/openssh-connectedpeers-html.lsp b/openssh-connectedpeers-html.lsp
index 5657e36..b49d26c 100644
--- a/openssh-connectedpeers-html.lsp
+++ b/openssh-connectedpeers-html.lsp
@@ -16,7 +16,7 @@ end
local col1="180px"
for k,v in pairs(data) do
io.write("<H3>" .. v.host)
- if v.name and v.name ~= "" then io.write(" - "..v.name) end
+ if v.name and v.name ~= v.host then io.write(" - "..v.name) end
io.write("</H3>\n")
io.write("<TABLE>")
for i=1, v.cnt do
diff --git a/openssh-model.lua b/openssh-model.lua
index 8875f04..a6722fc 100644
--- a/openssh-model.lua
+++ b/openssh-model.lua
@@ -124,21 +124,26 @@ function list_conn_peers()
local ps = {}
local who = {}
config = read_config()
- local f = io.popen( path .. 'netstat -lna | grep "ESTABLISHED"' )
- for line in f:lines() do
+ local f = io.popen( path .. 'netstat -lnaW | grep "ESTABLISHED"' )
+ local flines = format.string_to_table(f:read("*a"), "\n")
+ f:close()
+ local g = io.popen( path .. 'netstat -laW | grep "ESTABLISHED"' )
+ local glines = format.string_to_table(g:read("*a"), "\n")
+ g:close()
+ for i,line in ipairs(flines) do
local loc, peer = string.match(line, "^%S+%s+%S+%s+%S+%s+(%S+)%s+(%S+)")
- peer = string.match(peer, "%d+%.%d+%.%d+%.%d+")
- if string.find(loc, ":"..config.value.Port.value.."$") and peer then
- if not netstat[peer] then
- local g = io.popen( path .. "dnsname " .. peer)
- local name = g:read("*l")
- g:close()
- netstat[peer] = {cnt=0, name=name}
+ if loc then
+ peer = string.match(peer, "%d+%.%d+%.%d+%.%d+")
+ if string.find(loc, ":"..config.value.Port.value.."$") and peer then
+ if not netstat[peer] then
+ local name = string.match(glines[i], "^%S+%s+%S+%s+%S+%s+%S+%s+(%S+)")
+ name = string.gsub(name, ":.*", "")
+ netstat[peer] = {cnt=0, name=name}
+ end
+ netstat[peer].cnt = netstat[peer].cnt + 1
end
- netstat[peer].cnt = netstat[peer].cnt + 1
end
end
- f:close()
local f = io.popen( path .. 'ps | grep "sshd:" | grep -v "grep"' )
for line in f:lines() do