Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

How to access fields in custom packet context menus?
1500: WSLUA: Add new lua function register_packet_menu()

(There is NO !!! error checking in this so anything other than a vanilla TCP packet will have issues)
You can kick the tires by copying the script below into the Wireshark gui Lua console then click "Evaluate" to add the menu entry.
The set_filter() is the "Prepare" step and the "apply_filter() applies so you could have a "Prepare Filter" and "Apply Filter". There is also a Lua copy_to_clipboard(text) that might save you a step before copying to another Wireshark instance.

local function tcp_conv_filter(...)
    local tcp_filter = ""
    local fields = {...};
    for i, field in ipairs( fields ) do
        if (field.name == 'tcp.port' or field.name == "ip.addr") then
            if (tcp_filter ~= "") then
                tcp_filter = tcp_filter .. " && "
            end
            tcp_filter = tcp_filter .. field.name .. " == " .. field.display
        end
    end
    set_filter(tcp_filter)
    apply_filter()
end

register_packet_menu("XXX  My Conversation Filters  XXX/TCP", tcp_conv_filter, "tcp.port");