mirror of
https://github.com/nmap/nmap.git
synced 2026-08-04 14:49:29 +00:00
Added 'rawheader' when parsing http requests. It saves the header fields, in order, preserving the case. Change http-headers.nse to read this instead of the processed headers.
This commit is contained in:
parent
d254c85b42
commit
fc2b575fba
2 changed files with 5 additions and 3 deletions
|
|
@ -948,7 +948,7 @@ end
|
|||
-- @return A table with the values received from the server
|
||||
function parseResult( response )
|
||||
if type(response) ~= "string" then return response end
|
||||
local result = {status=nil,["status-line"]=nil,header={},body=""}
|
||||
local result = {status=nil,["status-line"]=nil,header={},rawheader={},body=""}
|
||||
|
||||
-- try and separate the head from the body
|
||||
local header, body
|
||||
|
|
@ -974,6 +974,8 @@ function parseResult( response )
|
|||
else
|
||||
match, _, key, value = string.find( line, "(.+): (.*)" )
|
||||
if match and key and value then
|
||||
-- Keep the raw header too, in case a script wants to access it
|
||||
table.insert(result['rawheader'], line)
|
||||
key = key:lower()
|
||||
if result.header[key] then
|
||||
result.header[key] = result.header[key] .. ',' .. value
|
||||
|
|
|
|||
|
|
@ -64,8 +64,8 @@ action = function(host, port)
|
|||
end
|
||||
|
||||
local response = " \n"
|
||||
for i, v in pairs(result.header) do
|
||||
response = response .. string.format(" %s: %s\n", i, v)
|
||||
for _, header in pairs(result.rawheader) do
|
||||
response = response .. header .. "\n"
|
||||
end
|
||||
|
||||
return response
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue