From e7396f95b6067ec4d931b269e68742e9eea31921 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Wed, 10 Dec 2008 18:28:02 +0000 Subject: Modified openssh to remove unintended dependence on tinydns. git-svn-id: svn://svn.alpinelinux.org/acf/openssh/trunk@1635 ab2d0c66-481e-0410-8bed-d214d4d58bed --- openssh-model.lua | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'openssh-model.lua') 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 -- cgit v1.2.3