1
0
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:
dmiller
2022-04-14 23:06:02 +00:00
parent ec2176f733
commit 2543f2dd3c
3 changed files with 21 additions and 17 deletions

View File

@@ -244,16 +244,14 @@ local STRINGIFY = {
} }
local function handle_received_packet(buf) local function handle_received_packet(buf)
local p, qtype, flags, data
local text local text
p = packet.Packet:new(buf) local p = packet.Packet:new(buf)
if p.icmpv6_type ~= ICMPv6_NODEINFORESP then if p.icmpv6_type ~= ICMPv6_NODEINFORESP then
return return
end end
qtype = packet.u16(p.buf, p.icmpv6_offset + 4) local qtype, flags, pos = string.unpack(">I2I2", p.buf, p.icmpv6_offset + 4)
flags = packet.u16(p.buf, p.icmpv6_offset + 6) local data = string.sub(p.buf, pos + 8)
data = string.sub(p.buf, p.icmpv6_offset + 16 + 1)
if not STRINGIFY[qtype] then if not STRINGIFY[qtype] then
-- This is a not a qtype we sent or know about. -- This is a not a qtype we sent or know about.

View File

@@ -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, --reachable time
0x00,0x00,0x00,0x00) --retrans timer 0x00,0x00,0x00,0x00) --retrans timer
local mtu_option_msg = "\0\0" .. -- reserved local mtu_option_msg = string.pack(">I2 I4",
packet.numtostr32(mtu) -- MTU 0, -- reserved
mtu -- MTU
)
local prefix_option_msg = string.char(prefix_len, 0xc0) .. --flags: Onlink, Auto local prefix_option_msg = string.pack(">BB I4 I4 I4",
packet.set_u32("....", 0, valid_time) .. -- valid lifetime prefix_len,
packet.set_u32("....", 0, preferred_time) .. -- preferred lifetime 0xc0, --flags: Onlink, Auto
"\0\0\0\0" .. --unknown valid_time, -- valid lifetime
prefix 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_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) local icmpv6_prefix_option = packet.Packet:set_icmpv6_option(packet.ND_OPT_PREFIX_INFORMATION, prefix_option_msg)

View File

@@ -82,11 +82,13 @@ local function build_router_advert(mac_src,prefix,prefix_len,valid_time,preferre
0x00,0x00, --router lifetime 0x00,0x00, --router lifetime
0x00,0x00,0x00,0x00, --reachable time 0x00,0x00,0x00,0x00, --reachable time
0x00,0x00,0x00,0x00) --retrans timer 0x00,0x00,0x00,0x00) --retrans timer
local prefix_option_msg = string.char(prefix_len, 0xc0) .. --flags: Onlink, Auto local prefix_option_msg = string.pack(">BB I4 I4 I4",
packet.set_u32("....",0,valid_time) .. prefix_len,
packet.set_u32("....",0,preferred_time) .. 0xc0, --flags: Onlink, Auto
"\0\0\0\0" .. --unknown valid_time, -- valid lifetime
prefix 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_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_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 local icmpv6_payload = ra_msg .. icmpv6_prefix_option .. icmpv6_src_link_option