Wireshark 4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Functions
tvbuff.h File Reference
#include <ws_symbol_export.h>
#include <ws_attributes.h>
#include <epan/guid-utils.h>
#include <wsutil/inet_addr.h>
#include <wsutil/nstime.h>
#include "wsutil/ws_mempbrk.h"

Go to the source code of this file.

Classes

struct  dgt_set_t
 Digit mapping table for BCD decoding. More...
 

Macros

#define tvb_get_h_uint16   tvb_get_letohs
 Fetch a 16-bit value in host byte order.
 
#define tvb_get_h_uint32   tvb_get_letohl
 Fetch a 32-bit value in host byte order.
 

Typedefs

typedef struct tvbuff tvbuff_t
 
typedef void(* tvbuff_free_cb_t) (void *)
 
typedef struct dgt_set_t dgt_set_t
 Digit mapping table for BCD decoding.
 

Functions

WS_DLL_PUBLIC tvbuff_ttvb_new_octet_aligned (tvbuff_t *tvb, uint32_t bit_offset, int32_t no_of_bits)
 Extracts a specified number of bits starting at a given bit offset, aligning the result to octet boundaries.
 
WS_DLL_PUBLIC tvbuff_ttvb_new_octet_right_aligned (tvbuff_t *tvb, uint32_t bit_offset, int32_t no_of_bits)
 Extracts a specified number of bits starting at a given bit offset, with bits counted from least significant bit (LSB = 0) to most significant bit (MSB = 7) within each octet.
 
WS_DLL_PUBLIC tvbuff_ttvb_new_chain (tvbuff_t *parent, tvbuff_t *backing)
 Create a new chained tvbuff from a parent and backing buffer.
 
WS_DLL_PUBLIC tvbuff_ttvb_clone (tvbuff_t *tvb)
 Creates a full clone of the given tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_clone_offset_len (tvbuff_t *tvb, unsigned offset, unsigned len)
 Clones a portion of the given tvbuff starting at a specific offset and length.
 
WS_DLL_PUBLIC void tvb_free (tvbuff_t *tvb)
 Free a tvbuff_t and all tvbuffs chained from it.
 
WS_DLL_PUBLIC void tvb_free_chain (tvbuff_t *tvb)
 Free the tvbuff_t and all tvbuffs chained from it.
 
WS_DLL_PUBLIC void tvb_set_free_cb (tvbuff_t *tvb, const tvbuff_free_cb_t func)
 Set a callback function to be called when a tvbuff is actually freed.
 
WS_DLL_PUBLIC void tvb_set_child_real_data_tvbuff (tvbuff_t *parent, tvbuff_t *child)
 Attach a "real" tvbuff to a parent tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_new_child_real_data (tvbuff_t *parent, const uint8_t *data, const unsigned length, const int reported_length)
 Create a new child tvbuff with real data.
 
WS_DLL_PUBLIC tvbuff_ttvb_new_real_data (const uint8_t *data, const unsigned length, const int reported_length)
 Create a tvbuff backed by existing data.
 
WS_DLL_PUBLIC tvbuff_ttvb_new_subset_length_caplen (tvbuff_t *backing, const int backing_offset, const int backing_length, const int reported_length)
 Create a subset tvbuff with an explicitly limited captured length.
 
WS_DLL_PUBLIC tvbuff_ttvb_new_subset_length (tvbuff_t *backing, const int backing_offset, const int reported_length)
 Create a subset tvbuff with captured length fitting within backing and reported lengths.
 
WS_DLL_PUBLIC tvbuff_ttvb_new_subset_remaining (tvbuff_t *backing, const int backing_offset)
 Similar to tvb_new_subset_length_caplen() but with backing_length and reported_length set to -1.
 
WS_DLL_PUBLIC void tvb_composite_append (tvbuff_t *tvb, tvbuff_t *member)
 Append to the list of tvbuffs that make up this composite tvbuff.
 
void tvb_composite_prepend (tvbuff_t *tvb, tvbuff_t *member)
 Prepend to the list of tvbuffs that make up this composite tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_new_composite (void)
 Create an empty composite tvbuff.
 
WS_DLL_PUBLIC void tvb_composite_finalize (tvbuff_t *tvb)
 Mark a composite tvbuff as finalized.
 
WS_DLL_PUBLIC unsigned tvb_captured_length (const tvbuff_t *tvb)
 Get the amount of captured data in the buffer.
 
WS_DLL_PUBLIC int tvb_captured_length_remaining (const tvbuff_t *tvb, const int offset)
 Computes bytes to end of buffer from the given offset.
 
WS_DLL_PUBLIC unsigned tvb_ensure_captured_length_remaining (const tvbuff_t *tvb, const int offset)
 Same as tvb_captured_length_remaining, but throws an exception if the offset is out of bounds.
 
WS_DLL_PUBLIC bool tvb_bytes_exist (const tvbuff_t *tvb, const int offset, const int length)
 Check that the specified bytes exist in the tvbuff without throwing an exception.
 
WS_DLL_PUBLIC void tvb_ensure_bytes_exist64 (const tvbuff_t *tvb, const int offset, const uint64_t length)
 Checks that the bytes referred to by 'offset' and 'length' actually exist in the buffer.
 
WS_DLL_PUBLIC void tvb_ensure_bytes_exist (const tvbuff_t *tvb, const int offset, const int length)
 Checks that the bytes referred to by 'offset' and 'length' actually exist in the buffer.
 
WS_DLL_PUBLIC bool tvb_offset_exists (const tvbuff_t *tvb, const int offset)
 Checks (without throwing an exception) whether the offset exists in the buffer.
 
WS_DLL_PUBLIC unsigned tvb_reported_length (const tvbuff_t *tvb)
 Get reported length of buffer.
 
WS_DLL_PUBLIC int tvb_reported_length_remaining (const tvbuff_t *tvb, const int offset)
 Computes bytes of reported packet data from the given offset to the end of buffer.
 
WS_DLL_PUBLIC unsigned tvb_ensure_reported_length_remaining (const tvbuff_t *tvb, const int offset)
 Same as tvb_reported_length_remaining but throws an exception if the offset is out of bounds.
 
WS_DLL_PUBLIC void tvb_set_reported_length (tvbuff_t *tvb, const unsigned reported_length)
 Set a tvbuff's reported_length to a given value.
 
WS_DLL_PUBLIC void tvb_fix_reported_length (tvbuff_t *tvb)
 Repair a tvbuff when captured length exceeds reported length.
 
WS_DLL_PUBLIC unsigned tvb_offset_from_real_beginning (const tvbuff_t *tvb)
 Returns the offset from the beginning of the real (backing) buffer.
 
WS_DLL_PUBLIC int tvb_raw_offset (tvbuff_t *tvb)
 Returns the offset from the first byte of real data.
 
WS_DLL_PUBLIC void tvb_set_fragment (tvbuff_t *tvb)
 Set the "this is a fragment" flag on a tvbuff.
 
WS_DLL_PUBLIC struct tvbufftvb_get_ds_tvb (tvbuff_t *tvb)
 Retrieve the data source tvbuff from a given tvbuff.
 
WS_DLL_PUBLIC uint8_t tvb_get_uint8 (tvbuff_t *tvb, const int offset)
 Retrieve an 8-bit unsigned value from a tvbuff at the specified offset.
 
WS_DLL_PUBLIC int8_t tvb_get_int8 (tvbuff_t *tvb, const int offset)
 Retrieve an 8-bit signed value from a tvbuff at the specified offset.
 
WS_DLL_PUBLIC uint16_t tvb_get_ntohs (tvbuff_t *tvb, const int offset)
 Retrieve a 16-bit unsigned value in network byte order.
 
WS_DLL_PUBLIC int16_t tvb_get_ntohis (tvbuff_t *tvb, const int offset)
 Retrieve a 16-bit signed value in network byte order.
 
WS_DLL_PUBLIC uint32_t tvb_get_ntoh24 (tvbuff_t *tvb, const int offset)
 Retrieve a 24-bit unsigned value in network byte order.
 
WS_DLL_PUBLIC int32_t tvb_get_ntohi24 (tvbuff_t *tvb, const int offset)
 Retrieve a 24-bit signed value in network byte order.
 
WS_DLL_PUBLIC uint32_t tvb_get_ntohl (tvbuff_t *tvb, const int offset)
 Retrieve a 32-bit unsigned value in network byte order.
 
WS_DLL_PUBLIC int32_t tvb_get_ntohil (tvbuff_t *tvb, const int offset)
 Retrieve a 32-bit signed value in network byte order.
 
WS_DLL_PUBLIC uint64_t tvb_get_ntoh40 (tvbuff_t *tvb, const int offset)
 Retrieve a 40-bit unsigned value in network byte order.
 
WS_DLL_PUBLIC int64_t tvb_get_ntohi40 (tvbuff_t *tvb, const int offset)
 Retrieve a 40-bit signed value in network byte order.
 
WS_DLL_PUBLIC uint64_t tvb_get_ntoh48 (tvbuff_t *tvb, const int offset)
 Retrieve a 48-bit unsigned value in network byte order.
 
WS_DLL_PUBLIC int64_t tvb_get_ntohi48 (tvbuff_t *tvb, const int offset)
 Retrieve a 48-bit signed value in network byte order.
 
WS_DLL_PUBLIC uint64_t tvb_get_ntoh56 (tvbuff_t *tvb, const int offset)
 Retrieve a 56-bit unsigned value in network byte order.
 
WS_DLL_PUBLIC int64_t tvb_get_ntohi56 (tvbuff_t *tvb, const int offset)
 Retrieve a 56-bit signed value in network byte order.
 
WS_DLL_PUBLIC uint64_t tvb_get_ntoh64 (tvbuff_t *tvb, const int offset)
 Retrieve a 64-bit unsigned value in network byte order.
 
WS_DLL_PUBLIC int64_t tvb_get_ntohi64 (tvbuff_t *tvb, const int offset)
 Retrieve a 64-bit signed value in network byte order.
 
WS_DLL_PUBLIC float tvb_get_ntohieee_float (tvbuff_t *tvb, const int offset)
 Retrieve a 32-bit IEEE float in network byte order.
 
WS_DLL_PUBLIC double tvb_get_ntohieee_double (tvbuff_t *tvb, const int offset)
 Retrieve a 64-bit IEEE double in network byte order.
 
WS_DLL_PUBLIC uint16_t tvb_get_letohs (tvbuff_t *tvb, const int offset)
 Retrieve a 16-bit unsigned value in little-endian byte order.
 
WS_DLL_PUBLIC int16_t tvb_get_letohis (tvbuff_t *tvb, const int offset)
 Retrieve a 16-bit signed value in little-endian byte order.
 
WS_DLL_PUBLIC uint32_t tvb_get_letoh24 (tvbuff_t *tvb, const int offset)
 Retrieve a 24-bit unsigned value in little-endian byte order.
 
WS_DLL_PUBLIC int32_t tvb_get_letohi24 (tvbuff_t *tvb, const int offset)
 Retrieve a 24-bit signed value in little-endian byte order.
 
WS_DLL_PUBLIC uint32_t tvb_get_letohl (tvbuff_t *tvb, const int offset)
 Retrieve a 32-bit unsigned value in little-endian byte order.
 
WS_DLL_PUBLIC int32_t tvb_get_letohil (tvbuff_t *tvb, const int offset)
 Retrieve a 32-bit signed value in little-endian byte order.
 
WS_DLL_PUBLIC uint64_t tvb_get_letoh40 (tvbuff_t *tvb, const int offset)
 Retrieve a 40-bit unsigned value in little-endian byte order.
 
WS_DLL_PUBLIC int64_t tvb_get_letohi40 (tvbuff_t *tvb, const int offset)
 Retrieve a 40-bit signed value in little-endian byte order.
 
WS_DLL_PUBLIC uint64_t tvb_get_letoh48 (tvbuff_t *tvb, const int offset)
 Retrieve a 48-bit unsigned value in little-endian byte order.
 
WS_DLL_PUBLIC int64_t tvb_get_letohi48 (tvbuff_t *tvb, const int offset)
 Retrieve a 48-bit signed value in little-endian byte order.
 
WS_DLL_PUBLIC uint64_t tvb_get_letoh56 (tvbuff_t *tvb, const int offset)
 Retrieve a 56-bit unsigned value in little-endian byte order.
 
WS_DLL_PUBLIC int64_t tvb_get_letohi56 (tvbuff_t *tvb, const int offset)
 Retrieve a 56-bit signed value in little-endian byte order.
 
WS_DLL_PUBLIC uint64_t tvb_get_letoh64 (tvbuff_t *tvb, const int offset)
 Retrieve a 64-bit unsigned value in little-endian byte order.
 
WS_DLL_PUBLIC int64_t tvb_get_letohi64 (tvbuff_t *tvb, const int offset)
 Retrieve a 64-bit signed value in little-endian byte order.
 
WS_DLL_PUBLIC float tvb_get_letohieee_float (tvbuff_t *tvb, const int offset)
 Retrieve a 32-bit IEEE float in little-endian byte order.
 
WS_DLL_PUBLIC double tvb_get_letohieee_double (tvbuff_t *tvb, const int offset)
 Retrieve a 64-bit IEEE double in little-endian byte order.
 
WS_DLL_PUBLIC uint16_t tvb_get_uint16 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 16-bit unsigned value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC int16_t tvb_get_int16 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 16-bit signed value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC uint32_t tvb_get_uint24 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 24-bit unsigned value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC int32_t tvb_get_int24 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 24-bit signed value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC uint32_t tvb_get_uint32 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 32-bit unsigned value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC int32_t tvb_get_int32 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 32-bit signed value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC uint64_t tvb_get_uint40 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 40-bit unsigned value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC int64_t tvb_get_int40 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 40-bit signed value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC uint64_t tvb_get_uint48 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 48-bit unsigned value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC int64_t tvb_get_int48 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 48-bit signed value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC uint64_t tvb_get_uint56 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 56-bit unsigned value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC int64_t tvb_get_int56 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 56-bit signed value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC uint64_t tvb_get_uint64 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 64-bit unsigned value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC uint64_t tvb_get_uint64_with_length (tvbuff_t *tvb, const int offset, unsigned length, const unsigned encoding)
 Retrieve a variable-length unsigned value (up to 64 bits) from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC int64_t tvb_get_int64 (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 64-bit signed value from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC float tvb_get_ieee_float (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 32-bit IEEE float from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC double tvb_get_ieee_double (tvbuff_t *tvb, const int offset, const unsigned encoding)
 Retrieve a 64-bit IEEE double from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC nstime_ttvb_get_string_time (tvbuff_t *tvb, const int offset, const int length, const unsigned encoding, nstime_t *ns, int *endoff)
 Fetch a time value from an ASCII-style string in the tvbuff.
 
WS_DLL_PUBLIC GByteArray * tvb_get_string_bytes (tvbuff_t *tvb, const int offset, const int length, const unsigned encoding, GByteArray *bytes, int *endoff)
 Parse a case-insensitive hex string with optional separators into a byte array.
 
WS_DLL_PUBLIC uint32_t tvb_get_ipv4 (tvbuff_t *tvb, const int offset)
 Retrieve an IPv4 address from a tvbuff in network byte order.
 
WS_DLL_PUBLIC void tvb_get_ipv6 (tvbuff_t *tvb, const int offset, ws_in6_addr *addr)
 Retrieve an IPv6 address from a tvbuff.
 
int tvb_get_ipv4_addr_with_prefix_len (tvbuff_t *tvb, int offset, ws_in4_addr *addr, uint32_t prefix_len)
 Fetch an IPv4 address from a tvbuff and mask out bits not covered by a prefix length.
 
int tvb_get_ipv6_addr_with_prefix_len (tvbuff_t *tvb, int offset, ws_in6_addr *addr, uint32_t prefix_len)
 Fetch an IPv6 address from a tvbuff and mask out bits not covered by a prefix length.
 
WS_DLL_PUBLIC void tvb_get_ntohguid (tvbuff_t *tvb, const int offset, e_guid_t *guid)
 Retrieve a GUID from a tvbuff in network byte order.
 
WS_DLL_PUBLIC void tvb_get_letohguid (tvbuff_t *tvb, const int offset, e_guid_t *guid)
 Retrieve a GUID from a tvbuff in little-endian byte order.
 
WS_DLL_PUBLIC void tvb_get_guid (tvbuff_t *tvb, const int offset, e_guid_t *guid, const unsigned encoding)
 Retrieve a GUID from a tvbuff using the specified encoding.
 
WS_DLL_PUBLIC uint8_t * tvb_get_bits_array (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, size_t length, size_t *data_length, const unsigned encoding)
 Retrieve a byte array from a tvbuff using a bit-level offset and encoding.
 
WS_DLL_PUBLIC uint8_t tvb_get_bits8 (tvbuff_t *tvb, unsigned bit_offset, const int no_of_bits)
 Retrieve 1–8 bits from a tvbuff and return them as a uint8_t.
 
WS_DLL_PUBLIC uint16_t tvb_get_bits16 (tvbuff_t *tvb, unsigned bit_offset, const int no_of_bits, const unsigned encoding)
 Retrieve 1–16 bits from a tvbuff and return them as a uint16_t.
 
WS_DLL_PUBLIC uint32_t tvb_get_bits32 (tvbuff_t *tvb, unsigned bit_offset, const int no_of_bits, const unsigned encoding)
 Retrieve 1–32 bits from a tvbuff and return them as a uint32_t.
 
WS_DLL_PUBLIC uint64_t tvb_get_bits64 (tvbuff_t *tvb, unsigned bit_offset, const int no_of_bits, const unsigned encoding)
 Retrieve 1–64 bits from a tvbuff and return them as a uint64_t.
 
WS_DLL_PUBLIC uint32_t tvb_get_bits (tvbuff_t *tvb, const unsigned bit_offset, const int no_of_bits, const unsigned encoding)
 Deprecated accessor for extracting bits from a tvbuff.
 
WS_DLL_PUBLIC void * tvb_memcpy (tvbuff_t *tvb, void *target, const int offset, size_t length)
 Copy a range of bytes from a tvbuff into a pre-allocated target buffer.
 
WS_DLL_PUBLIC void * tvb_memdup (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, size_t length)
 Duplicate a block of data from a tvbuff into a newly allocated buffer.
 
WS_DLL_PUBLIC const uint8_t * tvb_get_ptr (tvbuff_t *tvb, const int offset, const int length)
 Returns a raw pointer to tvbuff data. Use with extreme caution.
 
WS_DLL_PUBLIC int tvb_find_uint8 (tvbuff_t *tvb, const int offset, const int maxlength, const uint8_t needle)
 Find the first occurrence of a byte value in a tvbuff.
 
WS_DLL_PUBLIC int tvb_find_uint16 (tvbuff_t *tvb, const int offset, const int maxlength, const uint16_t needle)
 Find the first occurrence of a 16-bit value in a tvbuff.
 
WS_DLL_PUBLIC int tvb_ws_mempbrk_pattern_uint8 (tvbuff_t *tvb, const int offset, const int maxlength, const ws_mempbrk_pattern *pattern, unsigned char *found_needle)
 Find the first occurrence of any needle from a pre-compiled pattern in a tvbuff.
 
WS_DLL_PUBLIC unsigned tvb_strsize (tvbuff_t *tvb, const int offset)
 Determine the size of a NUL-terminated string in a tvbuff.
 
WS_DLL_PUBLIC unsigned tvb_unicode_strsize (tvbuff_t *tvb, const int offset)
 Determine the size of a UCS-2 or UTF-16 NUL-terminated string in a tvbuff.
 
WS_DLL_PUBLIC int tvb_strnlen (tvbuff_t *tvb, const int offset, const unsigned maxlength)
 Find the length of a NUL-terminated string in a tvbuff, up to a maximum limit.
 
WS_DLL_PUBLIC char * tvb_format_text (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, const int size)
 Format a block of tvbuff data as printable text.
 
WS_DLL_PUBLIC char * tvb_format_text_wsp (wmem_allocator_t *allocator, tvbuff_t *tvb, const int offset, const int size)
 Format tvbuff data as printable text, omitting C-style escapes.
 
char * tvb_format_stringzpad (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, const int size)
 Format a null-padded string from a tvbuff as printable text.
 
char * tvb_format_stringzpad_wsp (wmem_allocator_t *allocator, tvbuff_t *tvb, const int offset, const int size)
 Format a null-padded string from a tvbuff as printable text, preserving whitespace.
 
WS_DLL_PUBLIC uint8_t * tvb_get_string_enc (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, const int length, const unsigned encoding)
 Extract and convert a string from a tvbuff to UTF-8 using the specified encoding.
 
WS_DLL_PUBLIC char * tvb_get_ts_23_038_7bits_string_packed (wmem_allocator_t *scope, tvbuff_t *tvb, const int bit_offset, int no_of_chars)
 Extract and convert a 3GPP TS 23.038 7-bit packed string from a tvbuff to UTF-8.
 
WS_DLL_PUBLIC char * tvb_get_ts_23_038_7bits_string_unpacked (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, int length)
 Extract and convert a 3GPP TS 23.038 7-bit unpacked string from a tvbuff to UTF-8.
 
WS_DLL_PUBLIC char * tvb_get_etsi_ts_102_221_annex_a_string (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, int length)
 Extract and convert a string encoded per ETSI TS 102 221 Annex A from a tvbuff to UTF-8.
 
WS_DLL_PUBLIC char * tvb_get_ascii_7bits_string (wmem_allocator_t *scope, tvbuff_t *tvb, const int bit_offset, int no_of_chars)
 Extract and convert an ASCII 7-bit encoded string from a tvbuff to UTF-8.
 
WS_DLL_PUBLIC uint8_t * tvb_get_stringzpad (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, const int length, const unsigned encoding)
 Extract and convert a null-padded string from a tvbuff to UTF-8.
 
WS_DLL_PUBLIC uint8_t * tvb_get_stringz_enc (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, int *lengthp, const unsigned encoding)
 Extract and convert a null-terminated string from a tvbuff to UTF-8 using the specified encoding.
 
WS_DLL_PUBLIC const uint8_t * tvb_get_const_stringz (tvbuff_t *tvb, const int offset, int *lengthp)
 Deprecated function to retrieve a raw, unmodifiable null-terminated string from a tvbuff.
 
WS_DLL_PUBLIC int tvb_get_raw_bytes_as_stringz (tvbuff_t *tvb, const int offset, const unsigned bufsize, uint8_t *buffer)
 Copy up to a specified number of bytes from a tvbuff into a buffer as a NUL-terminated string.
 
WS_DLL_PUBLIC int tvb_get_raw_bytes_as_string (tvbuff_t *tvb, const int offset, char *buffer, size_t bufsize)
 Extract raw bytes from a tvbuff into a buffer as a NUL-terminated string.
 
WS_DLL_PUBLIC bool tvb_ascii_isprint (tvbuff_t *tvb, const int offset, const int length)
 Check whether all bytes in a tvbuff range are ASCII printable characters.
 
WS_DLL_PUBLIC bool tvb_utf_8_isprint (tvbuff_t *tvb, const int offset, const int length)
 Check if a portion of a tvbuff contains only valid, printable UTF-8 characters.
 
WS_DLL_PUBLIC bool tvb_ascii_isdigit (tvbuff_t *tvb, const int offset, const int length)
 Check if all bytes in a tvbuff range are ASCII digits.
 
WS_DLL_PUBLIC int tvb_find_line_end (tvbuff_t *tvb, const int offset, int len, int *next_offset, const bool desegment)
 Locate the end of a line in a tvbuff, optionally desegmenting.
 
WS_DLL_PUBLIC int tvb_find_line_end_unquoted (tvbuff_t *tvb, const int offset, int len, int *next_offset)
 Locate the end of a line in a tvbuff, ignoring newlines inside quoted strings.
 
WS_DLL_PUBLIC int tvb_skip_wsp (tvbuff_t *tvb, const int offset, const int maxlength)
 Skip ASCII whitespace in a tvbuff and return the offset of the first non-whitespace byte.
 
WS_DLL_PUBLIC int tvb_skip_wsp_return (tvbuff_t *tvb, const int offset)
 Skip ASCII whitespace in a tvbuff and return the next non-whitespace offset.
 
int tvb_skip_uint8 (tvbuff_t *tvb, int offset, const int maxlength, const uint8_t ch)
 Skip consecutive occurrences of a specific byte value in a tvbuff.
 
WS_DLL_PUBLIC int tvb_get_token_len (tvbuff_t *tvb, const int offset, int len, int *next_offset, const bool desegment)
 Determine the length of a token in a tvbuff, optionally desegmenting.
 
WS_DLL_PUBLIC int tvb_strneql (tvbuff_t *tvb, const int offset, const char *str, const size_t size)
 Compare a string in a tvbuff to a reference string using strncmp semantics.
 
WS_DLL_PUBLIC int tvb_strncaseeql (tvbuff_t *tvb, const int offset, const char *str, const size_t size)
 Case-insensitive comparison of tvbuff bytes against a reference string.
 
WS_DLL_PUBLIC int tvb_memeql (tvbuff_t *tvb, const int offset, const uint8_t *str, size_t size)
 Compare raw bytes in a tvbuff to a reference buffer using memcmp semantics.
 
WS_DLL_PUBLIC char * tvb_bytes_to_str_punct (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, const int len, const char punct)
 Format a sequence of bytes from a tvbuff as a string with a custom separator.
 
WS_DLL_PUBLIC char * tvb_bytes_to_str (wmem_allocator_t *allocator, tvbuff_t *tvb, const int offset, const int len)
 Format a sequence of bytes from a tvbuff as a hexadecimal string.
 
WS_DLL_PUBLIC const char * tvb_bcd_dig_to_str (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, const int len, const dgt_set_t *dgt, bool skip_first)
 Convert BCD-encoded digits from a tvbuff into a formatted string.
 
WS_DLL_PUBLIC const char * tvb_bcd_dig_to_str_be (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, const int len, const dgt_set_t *dgt, bool skip_first)
 Convert BCD-encoded digits from a tvbuff to a formatted string (big-endian nibble order).
 
WS_DLL_PUBLIC char * tvb_get_bcd_string (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, int len, const dgt_set_t *dgt, bool skip_first, bool odd, bool bigendian)
 Convert BCD-encoded digits from a tvbuff to a UTF-8 string with flexible nibble handling.
 
WS_DLL_PUBLIC int tvb_find_tvb (tvbuff_t *haystack_tvb, tvbuff_t *needle_tvb, const int haystack_offset)
 Search for a sub-tvbuff within another tvbuff starting at a given offset.
 
WS_DLL_PUBLIC tvbuff_ttvb_uncompress (tvbuff_t *tvb, const int offset, int comprlen)
 Deprecated interface for uncompressing data from a tvbuff using zlib.
 
WS_DLL_PUBLIC tvbuff_ttvb_uncompress_zlib (tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress zlib-compressed data from a tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_child_uncompress (tvbuff_t *parent, tvbuff_t *tvb, const int offset, int comprlen)
 Deprecated interface for uncompressing data and chaining the result to a parent tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_child_uncompress_zlib (tvbuff_t *parent, tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress a zlib-compressed packet inside a tvbuff and attach the result to a parent tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_uncompress_brotli (tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress Brotli-compressed data from a tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_child_uncompress_brotli (tvbuff_t *parent, tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress Brotli-compressed data from a tvbuff and attach the result to a parent tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_uncompress_snappy (tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress Snappy-compressed data from a tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_child_uncompress_snappy (tvbuff_t *parent, tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress Snappy-compressed data from a tvbuff and attach the result to a parent tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_uncompress_lz77 (tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress Microsoft Plain LZ77-compressed data from a tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_child_uncompress_lz77 (tvbuff_t *parent, tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress Microsoft Plain LZ77-compressed data from a tvbuff and attach the result to a parent tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_uncompress_lz77huff (tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress Microsoft LZ77+Huffman-compressed data from a tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_child_uncompress_lz77huff (tvbuff_t *parent, tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress Microsoft LZ77+Huffman-compressed data from a tvbuff and attach the result to a parent tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_uncompress_lznt1 (tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress Microsoft LZNT1-compressed data from a tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_child_uncompress_lznt1 (tvbuff_t *parent, tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress Microsoft LZNT1-compressed data from a tvbuff and attach the result to a parent tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_uncompress_zstd (tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress Zstandard (ZSTD)-compressed data from a tvbuff.
 
WS_DLL_PUBLIC tvbuff_ttvb_child_uncompress_zstd (tvbuff_t *parent, tvbuff_t *tvb, const int offset, int comprlen)
 Uncompress Zstandard (ZSTD)-compressed data from a tvbuff and attach the result to a parent tvbuff.
 
tvbuff_tbase64_to_tvb (tvbuff_t *parent, const char *base64)
 Decode a base64-encoded string into a tvbuff and attach it to a parent tvbuff.
 
tvbuff_tbase64_tvb_to_new_tvb (tvbuff_t *parent, int offset, int length)
 Decode a base64-encoded string from a tvbuff region and attach the result to a parent tvbuff.
 
tvbuff_tbase64uri_tvb_to_new_tvb (tvbuff_t *parent, int offset, int length)
 Decode a base64url-encoded string from a tvbuff region and attach the result to a parent tvbuff.
 
WS_DLL_PUBLIC wmem_strbuf_ttvb_get_hpack_huffman_strbuf (wmem_allocator_t *scope, tvbuff_t *tvb, const int offset, const int len)
 Decode HPACK Huffman-encoded data from a tvbuff into a string buffer.
 
WS_DLL_PUBLIC tvbuff_ttvb_child_uncompress_hpack_huff (tvbuff_t *parent, int offset, int length)
 Decode HPACK Huffman-encoded data from a tvbuff region and attach the result to a parent tvbuff.
 
WS_DLL_PUBLIC unsigned tvb_get_varint (tvbuff_t *tvb, unsigned offset, unsigned maxlen, uint64_t *value, const unsigned encoding)
 Extract a variable-length integer from a tvbuff using the specified encoding.
 

Detailed Description

Testy, Virtual(-izable) Buffer of uint8_t*'s

"Testy" – the buffer gets mad when an attempt is made to access data beyond the bounds of the buffer. An exception is thrown.

"Virtual" – the buffer can have its own data, can use a subset of the data of a backing tvbuff, or can be a composite of other tvbuffs.

Copyright (c) 2000 by Gilbert Ramirez gram@.nosp@m.alum.nosp@m.ni.ri.nosp@m.ce.e.nosp@m.du

Wireshark - Network traffic analyzer By Gerald Combs geral.nosp@m.d@wi.nosp@m.resha.nosp@m.rk.o.nosp@m.rg Copyright 1998 Gerald Combs

SPDX-License-Identifier: GPL-2.0-or-later