Wireshark dissector for Pro DJ Link protocol
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

file ext hints & blob continuations print nicer

Stella 1fefdef7 0e1a3153

+12 -5
+12 -5
pro_dj_link.lua
··· 407 407 [1] = "DMST", 408 408 [2] = "Rekordbox ID", 409 409 [3] = "Tag", 410 - [4] = "Extension (Blob)" 410 + [4] = "Extension" 411 411 } 412 412 return labels[arg_idx] 413 413 elseif msg_type == 0x2102 then -- GetTrackStreamingReq ··· 531 531 item:set_text(prefix .. ": " .. MENU_ITEM_TYPES[val] .. " (0x" .. string.format("%04x", val) .. ")") 532 532 elseif label == "Tag" and ANALYSIS_TAGS[val] then 533 533 item:set_text(prefix .. ": " .. ANALYSIS_TAGS[val] .. " (0x" .. string.format("%08x", val) .. ")") 534 + elseif label == "Extension" then 535 + local b = buf(offset+1, 4):bytes() 536 + local s = "" 537 + for j = 3, 0, -1 do 538 + local c = b:get_index(j) 539 + if c ~= 0 then s = s .. string.char(c) end 540 + end 541 + item:set_text(prefix .. ": \"" .. s .. "\" (0x" .. string.format("%08x", val) .. ")") 534 542 else 535 543 item:set_text(prefix .. ": " .. val .. " (0x" .. string.format("%08x", val) .. ")") 536 544 end ··· 610 618 611 619 local cont_len = (next_msg == -1) and length or next_msg 612 620 local pdjl_tree = root:add(p_djl, buf(0, cont_len)) 613 - pdjl_tree:set_text("Pro DJ Link (DB Continuation)") 614 - pdjl_tree:add(f_raw_payload, buf(0, cont_len)):set_text("PDJL Continuation / Blob Chunk") 621 + pdjl_tree:set_text("Pro DJ Link (Blob Chunk)") 615 622 table.insert(db_types, "Blob Continuation") 616 623 found_db = true 617 624 off = cont_len ··· 966 973 if (src_port == 12523 or dst_port == 12523) then 967 974 if length == 2 then 968 975 local tree = root:add(p_djl, buf(0, 2)) 969 - pkt.cols.protocol = "PDJL (DB Port)" 976 + pkt.cols.protocol = "Pro DJ Link (DB Port)" 970 977 pkt.cols.info:set("Port Discovery Response") 971 978 tree:add(f_db_port, buf(0, 2)) 972 979 return true 973 980 elseif (length == 15 and buf(0, 1):uint() == 0x52) or (length == 19 and buf(0, 4):uint() == 0x0000000f) then 974 981 local tree = root:add(p_djl, buf(0, length)) 975 - pkt.cols.protocol = "PDJL (DB Port)" 982 + pkt.cols.protocol = "Pro DJ Link (DB Port)" 976 983 pkt.cols.info:set("Port Discovery Request") 977 984 tree:add(f_raw_payload, buf(0, length)):set_text("Discovery Request: RemoteDBServer") 978 985 return true