mirror of
https://github.com/nmap/nmap.git
synced 2025-12-06 04:31:29 +00:00
Refactor to avoid using packet.lua local functions. See #2464
This commit is contained in:
@@ -244,16 +244,14 @@ local STRINGIFY = {
|
||||
}
|
||||
|
||||
local function handle_received_packet(buf)
|
||||
local p, qtype, flags, data
|
||||
local text
|
||||
|
||||
p = packet.Packet:new(buf)
|
||||
local p = packet.Packet:new(buf)
|
||||
if p.icmpv6_type ~= ICMPv6_NODEINFORESP then
|
||||
return
|
||||
end
|
||||
qtype = packet.u16(p.buf, p.icmpv6_offset + 4)
|
||||
flags = packet.u16(p.buf, p.icmpv6_offset + 6)
|
||||
data = string.sub(p.buf, p.icmpv6_offset + 16 + 1)
|
||||
local qtype, flags, pos = string.unpack(">I2I2", p.buf, p.icmpv6_offset + 4)
|
||||
local data = string.sub(p.buf, pos + 8)
|
||||
|
||||
if not STRINGIFY[qtype] then
|
||||
-- This is a not a qtype we sent or know about.
|
||||
|
||||
@@ -106,14 +106,18 @@ local function build_router_advert(mac_src,prefix,prefix_len,valid_time,preferre
|
||||
0x00,0x00,0x00,0x00, --reachable time
|
||||
0x00,0x00,0x00,0x00) --retrans timer
|
||||
|
||||
local mtu_option_msg = "\0\0" .. -- reserved
|
||||
packet.numtostr32(mtu) -- MTU
|
||||
local mtu_option_msg = string.pack(">I2 I4",
|
||||
0, -- reserved
|
||||
mtu -- MTU
|
||||
)
|
||||
|
||||
local prefix_option_msg = string.char(prefix_len, 0xc0) .. --flags: Onlink, Auto
|
||||
packet.set_u32("....", 0, valid_time) .. -- valid lifetime
|
||||
packet.set_u32("....", 0, preferred_time) .. -- preferred lifetime
|
||||
"\0\0\0\0" .. --unknown
|
||||
prefix
|
||||
local prefix_option_msg = string.pack(">BB I4 I4 I4",
|
||||
prefix_len,
|
||||
0xc0, --flags: Onlink, Auto
|
||||
valid_time, -- valid lifetime
|
||||
preferred_time, -- preferred lifetime
|
||||
0 -- unknown
|
||||
) .. prefix
|
||||
|
||||
local icmpv6_mtu_option = packet.Packet:set_icmpv6_option(packet.ND_OPT_MTU, mtu_option_msg)
|
||||
local icmpv6_prefix_option = packet.Packet:set_icmpv6_option(packet.ND_OPT_PREFIX_INFORMATION, prefix_option_msg)
|
||||
|
||||
@@ -82,11 +82,13 @@ local function build_router_advert(mac_src,prefix,prefix_len,valid_time,preferre
|
||||
0x00,0x00, --router lifetime
|
||||
0x00,0x00,0x00,0x00, --reachable time
|
||||
0x00,0x00,0x00,0x00) --retrans timer
|
||||
local prefix_option_msg = string.char(prefix_len, 0xc0) .. --flags: Onlink, Auto
|
||||
packet.set_u32("....",0,valid_time) ..
|
||||
packet.set_u32("....",0,preferred_time) ..
|
||||
"\0\0\0\0" .. --unknown
|
||||
prefix
|
||||
local prefix_option_msg = string.pack(">BB I4 I4 I4",
|
||||
prefix_len,
|
||||
0xc0, --flags: Onlink, Auto
|
||||
valid_time, -- valid lifetime
|
||||
preferred_time, -- preferred lifetime
|
||||
0 -- unknown
|
||||
) .. prefix
|
||||
local icmpv6_prefix_option = packet.Packet:set_icmpv6_option(packet.ND_OPT_PREFIX_INFORMATION,prefix_option_msg)
|
||||
local icmpv6_src_link_option = packet.Packet:set_icmpv6_option(packet.ND_OPT_SOURCE_LINKADDR,mac_src)
|
||||
local icmpv6_payload = ra_msg .. icmpv6_prefix_option .. icmpv6_src_link_option
|
||||
|
||||
Reference in New Issue
Block a user