mirror of
https://github.com/nmap/nmap.git
synced 2026-08-04 06:40:48 +00:00
Added support for returning multiple responses to the srvloc library
This commit is contained in:
parent
480784d252
commit
03dde2cc9a
2 changed files with 21 additions and 8 deletions
|
|
@ -324,15 +324,19 @@ Helper = {
|
|||
self.socket:set_timeout(5000)
|
||||
self.socket:sendto( self.host, self.port, tostring(sr) )
|
||||
|
||||
local r = Reply.Service.fromSocket(self.socket)
|
||||
self.socket:close()
|
||||
local result = {}
|
||||
repeat
|
||||
local r = Reply.Service.fromSocket(self.socket)
|
||||
if ( r ) then
|
||||
table.insert(result, r:getUrl())
|
||||
end
|
||||
self.xid = self.xid + 1
|
||||
until(not(r))
|
||||
|
||||
self.xid = self.xid + 1
|
||||
|
||||
if ( not(r) ) then
|
||||
if ( #result == 0 ) then
|
||||
return false, "ERROR: Helper.Locate no response received"
|
||||
end
|
||||
return true, r:getUrl()
|
||||
return true, result
|
||||
end,
|
||||
|
||||
--- Requests an attribute from the server
|
||||
|
|
@ -355,7 +359,6 @@ Helper = {
|
|||
self.socket:sendto( self.host, self.port, tostring(ar) )
|
||||
|
||||
local r = Reply.Attribute.fromSocket(self.socket)
|
||||
self.socket:close()
|
||||
|
||||
self.xid = self.xid + 1
|
||||
if ( not(r) ) then
|
||||
|
|
@ -364,4 +367,8 @@ Helper = {
|
|||
return true, r:getAttribList()
|
||||
end,
|
||||
|
||||
close = function(self)
|
||||
return self.socket:close()
|
||||
end,
|
||||
|
||||
}
|
||||
|
|
@ -31,10 +31,15 @@ function action()
|
|||
local helper = srvloc.Helper:new()
|
||||
|
||||
local status, bindery = helper:ServiceRequest("bindery.novell", "DEFAULT")
|
||||
if ( not(status) or not(bindery) ) then return end
|
||||
if ( not(status) or not(bindery) ) then
|
||||
helper:close()
|
||||
return
|
||||
end
|
||||
bindery = bindery[1]
|
||||
local srvname = bindery:match("%/%/%/(.*)$")
|
||||
|
||||
local status, attrib = helper:AttributeRequest(bindery, "DEFAULT", "svcaddr-ws")
|
||||
helper:close()
|
||||
attrib = attrib:match("^%(svcaddr%-ws=(.*)%)$")
|
||||
if ( not(attrib) ) then return end
|
||||
|
||||
|
|
@ -59,6 +64,7 @@ function action()
|
|||
local output = {}
|
||||
local status, treename = helper:ServiceRequest("ndap.novell", "DEFAULT")
|
||||
if ( status ) then
|
||||
treename = treename[1]
|
||||
treename = treename:match("%/%/%/(.*)%.$")
|
||||
table.insert(output, ("Tree name: %s"):format(treename))
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue