Wireshark 4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions
oids.h File Reference
#include <epan/ftypes/ftypes.h>
#include <epan/prefs.h>
#include <epan/wmem_scopes.h>
#include "ws_symbol_export.h"

Go to the source code of this file.

Classes

struct  _oid_bit_t
 
struct  _oid_bits_info_t
 
struct  _oid_value_type_t
 
struct  _oid_key_t
 
struct  _oid_info_t
 

Macros

#define BER_TAG_ANY   -1
 
#define subid_t   uint32_t
 
#define add_oid_debug_subtree(a, b)   ((void)0)
 

Typedefs

typedef struct _oid_bits_info_t oid_bits_info_t
 
typedef enum _oid_key_type_t oid_key_type_t
 
typedef struct _oid_value_type_t oid_value_type_t
 
typedef enum _oid_kind_t oid_kind_t
 
typedef struct _oid_key_t oid_key_t
 
typedef struct _oid_info_t oid_info_t
 

Enumerations

enum  _oid_key_type_t {
  OID_KEY_TYPE_WRONG , OID_KEY_TYPE_INTEGER , OID_KEY_TYPE_OID , OID_KEY_TYPE_STRING ,
  OID_KEY_TYPE_BYTES , OID_KEY_TYPE_NSAP , OID_KEY_TYPE_IPADDR , OID_KEY_TYPE_IMPLIED_OID ,
  OID_KEY_TYPE_IMPLIED_STRING , OID_KEY_TYPE_IMPLIED_BYTES , OID_KEY_TYPE_ETHER , OID_KEY_TYPE_DATE_AND_TIME
}
 
enum  _oid_kind_t {
  OID_KIND_UNKNOWN = 0 , OID_KIND_NODE , OID_KIND_SCALAR , OID_KIND_TABLE ,
  OID_KIND_ROW , OID_KIND_COLUMN , OID_KIND_NOTIFICATION , OID_KIND_GROUP ,
  OID_KIND_COMPLIANCE , OID_KIND_CAPABILITIES
}
 

Functions

WS_DLL_PUBLIC void oids_init (const char *app_env_var_prefix)
 Initialize OID resolution and register related preferences.
 
void oid_pref_init (module_t *nameres)
 
WS_DLL_PUBLIC void oids_cleanup (void)
 Clean up OID-related resources.
 
WS_DLL_PUBLIC unsigned oid_subid2encoded (wmem_allocator_t *scope, unsigned len, uint32_t *subids, uint8_t **encoded_p)
 
WS_DLL_PUBLIC unsigned oid_string2encoded (wmem_allocator_t *scope, const char *oid_str, uint8_t **encoded_p)
 
WS_DLL_PUBLIC unsigned oid_encoded2subid (wmem_allocator_t *scope, const uint8_t *oid, int len, uint32_t **subids_p)
 
WS_DLL_PUBLIC unsigned oid_encoded2subid_sub (wmem_allocator_t *scope, const uint8_t *oid_bytes, int oid_len, uint32_t **subids_pi, bool is_first)
 
WS_DLL_PUBLIC unsigned oid_string2subid (wmem_allocator_t *scope, const char *oid_str, uint32_t **subids_p)
 
WS_DLL_PUBLIC char * oid_encoded2string (wmem_allocator_t *scope, const uint8_t *encoded, unsigned len)
 
WS_DLL_PUBLIC char * rel_oid_encoded2string (wmem_allocator_t *scope, const uint8_t *encoded, unsigned len)
 
WS_DLL_PUBLIC char * oid_subid2string (wmem_allocator_t *scope, uint32_t *subids, unsigned len)
 Convert a sequence of OID sub-identifiers to a human-readable string.
 
WS_DLL_PUBLIC char * rel_oid_subid2string (wmem_allocator_t *scope, uint32_t *subids, unsigned len, bool is_absolute)
 Convert a sequence of OID subidentifiers to a human-readable string.
 
WS_DLL_PUBLIC char * oid_resolved (wmem_allocator_t *scope, unsigned len, uint32_t *subids)
 Resolve an OID to its human-readable name.
 
WS_DLL_PUBLIC char * oid_resolved_from_encoded (wmem_allocator_t *scope, const uint8_t *oid, int len)
 
WS_DLL_PUBLIC char * rel_oid_resolved_from_encoded (wmem_allocator_t *scope, const uint8_t *oid, int len)
 Resolve an OID from its encoded form.
 
WS_DLL_PUBLIC char * oid_resolved_from_string (wmem_allocator_t *scope, const char *oid_str)
 Resolves an OID string to its resolved form.
 
WS_DLL_PUBLIC void oid_both (wmem_allocator_t *scope, unsigned oid_len, uint32_t *subids, char **resolved_p, char **numeric_p)
 Resolve and convert an OID to both resolved and numeric representations.
 
WS_DLL_PUBLIC void oid_both_from_encoded (wmem_allocator_t *scope, const uint8_t *oid, int oid_len, char **resolved_p, char **numeric_p)
 Resolve and convert an OID from its encoded form to both resolved and numeric representations.
 
WS_DLL_PUBLIC void oid_both_from_string (wmem_allocator_t *scope, const char *oid_str, char **resolved_p, char **numeric_p)
 Resolve and convert an OID from its string representation to both resolved and numeric forms.
 
WS_DLL_PUBLIC oid_info_toid_get (unsigned oid_len, uint32_t *subids, unsigned *matched_p, unsigned *left_p)
 
WS_DLL_PUBLIC oid_info_toid_get_from_encoded (wmem_allocator_t *scope, const uint8_t *oid, int oid_len, uint32_t **subids, unsigned *matched, unsigned *left)
 Retrieves an OID information structure from its encoded form.
 
WS_DLL_PUBLIC oid_info_toid_get_from_string (wmem_allocator_t *scope, const char *oid_str, uint32_t **subids, unsigned *matched, unsigned *left)
 Retrieves an OID information structure from a string representation.
 
WS_DLL_PUBLIC void oid_add (const char *name, unsigned oid_len, uint32_t *subids)
 
WS_DLL_PUBLIC void oid_add_from_encoded (const char *name, const uint8_t *oid, int oid_len)
 
WS_DLL_PUBLIC void oid_add_from_string (const char *name, const char *oid_str)
 
WS_DLL_PUBLIC char * oid_get_default_mib_path (const char *app_env_var_prefix)
 Fetch the default MIB/PIB path.
 

Function Documentation

◆ oid_both()

WS_DLL_PUBLIC void oid_both ( wmem_allocator_t scope,
unsigned  oid_len,
uint32_t *  subids,
char **  resolved_p,
char **  numeric_p 
)

Resolve and convert an OID to both resolved and numeric representations.

Parameters
scopeMemory allocator for allocating memory.
oid_lenLength of the OID subids array.
subidsArray of OID subidentifiers.
resolved_pPointer to store the resolved OID string.
numeric_pPointer to store the numeric OID representation.

◆ oid_both_from_encoded()

WS_DLL_PUBLIC void oid_both_from_encoded ( wmem_allocator_t scope,
const uint8_t *  oid,
int  oid_len,
char **  resolved_p,
char **  numeric_p 
)

Resolve and convert an OID from its encoded form to both resolved and numeric representations.

Parameters
scopeMemory allocator for allocating memory.
oidEncoded OID data.
oid_lenLength of the encoded OID data.
resolved_pPointer to store the resolved OID string.
numeric_pPointer to store the numeric OID representation.

◆ oid_both_from_string()

WS_DLL_PUBLIC void oid_both_from_string ( wmem_allocator_t scope,
const char *  oid_str,
char **  resolved_p,
char **  numeric_p 
)

Resolve and convert an OID from its string representation to both resolved and numeric forms.

Parameters
scopeMemory allocator for allocating memory.
oid_strThe OID string to resolve and convert.
resolved_pPointer to store the resolved OID string.
numeric_pPointer to store the numeric OID representation.

◆ oid_get_default_mib_path()

WS_DLL_PUBLIC char * oid_get_default_mib_path ( const char *  app_env_var_prefix)

Fetch the default MIB/PIB path.

Parameters
app_env_var_prefixThe prefix for environment variables related to OID resolution.
Returns
A string containing the default MIB/PIB path. It must be g_free()d by the caller.

◆ oid_get_from_encoded()

WS_DLL_PUBLIC oid_info_t * oid_get_from_encoded ( wmem_allocator_t scope,
const uint8_t *  oid,
int  oid_len,
uint32_t **  subids,
unsigned *  matched,
unsigned *  left 
)

Retrieves an OID information structure from its encoded form.

Parameters
scopeMemory allocator scope for allocating the returned object.
oidEncoded OID data.
oid_lenLength of the encoded OID data.
subidsPointer to store the decoded sub-identifiers.
matchedPointer to store the number of matched sub-identifiers.
leftPointer to store the number of remaining sub-identifiers.
Returns
Pointer to the retrieved OID information structure, or NULL if not found.

◆ oid_get_from_string()

WS_DLL_PUBLIC oid_info_t * oid_get_from_string ( wmem_allocator_t scope,
const char *  oid_str,
uint32_t **  subids,
unsigned *  matched,
unsigned *  left 
)

Retrieves an OID information structure from a string representation.

Parameters
scopeMemory allocator scope for the returned oid_info_t structure.
oid_strString representation of the OID to retrieve.
subidsPointer to store the resulting sub-identifier array.
matchedPointer to store the number of matched sub-identifiers.
leftPointer to store the number of remaining sub-identifiers.
Returns
Pointer to the retrieved oid_info_t structure, or NULL if not found.

◆ oid_resolved()

WS_DLL_PUBLIC char * oid_resolved ( wmem_allocator_t scope,
unsigned  len,
uint32_t *  subids 
)

Resolve an OID to its human-readable name.

Parameters
scopeMemory allocator for the returned string.
lenLength of the OID sub-identifier array.
subidsArray of OID sub-identifiers.
Returns
Human-readable name of the OID, or NULL if not found.

◆ oid_resolved_from_string()

WS_DLL_PUBLIC char * oid_resolved_from_string ( wmem_allocator_t scope,
const char *  oid_str 
)

Resolves an OID string to its resolved form.

Parameters
scopeMemory allocator scope for allocating memory.
oid_strThe OID string to resolve.
Returns
The resolved OID as a string, or NULL if resolution fails.

◆ oid_subid2string()

WS_DLL_PUBLIC char * oid_subid2string ( wmem_allocator_t scope,
uint32_t *  subids,
unsigned  len 
)

Convert a sequence of OID sub-identifiers to a human-readable string.

Parameters
scopeMemory allocator for the returned string.
subidsArray of OID sub-identifiers.
lenNumber of sub-identifiers in the array.
Returns
A formatted string representing the OID, or NULL on failure.

◆ oids_cleanup()

WS_DLL_PUBLIC void oids_cleanup ( void  )

Clean up OID-related resources.

init function called from epan.h

◆ oids_init()

WS_DLL_PUBLIC void oids_init ( const char *  app_env_var_prefix)

Initialize OID resolution and register related preferences.

init function called from prefs.c

Parameters
app_env_var_prefixThe prefix for environment variables related to OID resolution.

◆ rel_oid_resolved_from_encoded()

WS_DLL_PUBLIC char * rel_oid_resolved_from_encoded ( wmem_allocator_t scope,
const uint8_t *  oid,
int  len 
)

Resolve an OID from its encoded form.

Parameters
scopeMemory allocator for allocated memory.
oidEncoded OID data.
lenLength of the encoded OID data.
Returns
Resolved OID as a string, or NULL if resolution fails.

◆ rel_oid_subid2string()

WS_DLL_PUBLIC char * rel_oid_subid2string ( wmem_allocator_t scope,
uint32_t *  subids,
unsigned  len,
bool  is_absolute 
)

Convert a sequence of OID subidentifiers to a human-readable string.

Parameters
scopeMemory allocator for the returned string.
subidsArray of OID subidentifiers.
lenNumber of subidentifiers in the array.
is_absoluteFlag indicating if the OID is absolute (starts with a dot).
Returns
A formatted string representing the OID, or "*** Empty OID ***" if input is invalid.