|
Wireshark 4.7.0
The Wireshark network protocol analyzer
|
#include <conversation.h>
Public Attributes | ||
| conversation_element_type | type | |
| union { | ||
| conversation_type conversation_type_val | ||
| address addr_val | ||
| unsigned int port_val | ||
| const char * str_val | ||
| unsigned int uint_val | ||
| uint64_t uint64_val | ||
| int int_val | ||
| int64_t int64_val | ||
| struct { | ||
| const uint8_t * val | ||
| size_t len | ||
| } blob | ||
| }; | ||
Elements used to identify conversations for *_full routines and pinfo->conv_elements. Arrays must be terminated with an element .type set to CE_CONVERSATION_TYPE.
This is currently set only by conversation_set_elements_by_id(); it is not set for conversations identified by address/port endpoints.
In find_conversation_pinfo() and find_or_create_conversation(), if any dissector has set this, then, unless some dissector has set the pair of address/port endpoints (see below), the array of elements is used to look up or create the conversation. Otherwise, the current addresses and ports in the packet_info structure are used.
XXX - is there any reason why we shouldn't use an array of conversation elements, with the appropriate addresses and ports, and set it for all protocols that use conversations specified by a pair of address/port endpoints? That might simplify find_conversation_pinfo() by having them always use the array of elements if it's present, and just fail if it's not.
| address conversation_element::addr_val |
Network address (IPv4, IPv6, etc.).
| struct { ... } conversation_element::blob |
Arbitrary binary data.
| conversation_type conversation_element::conversation_type_val |
Conversation type marker.
| int64_t conversation_element::int64_val |
64-bit signed integer value.
| int conversation_element::int_val |
Signed integer value.
| size_t conversation_element::len |
Length of the blob.
| unsigned int conversation_element::port_val |
Port number.
| const char* conversation_element::str_val |
String identifier.
| conversation_element_type conversation_element::type |
Type of the conversation element.
| uint64_t conversation_element::uint64_val |
64-bit unsigned integer value.
| unsigned int conversation_element::uint_val |
Unsigned integer value.
| const uint8_t* conversation_element::val |
Pointer to binary blob.