snmp_value_free snmp_value_parse snmp_value_copy snmp_pdu_free snmp_code snmp_pdu_decode snmp_code snmp_pdu_encode snmp_pdu_dump TRUTH_MK TRUTH_GET TRUTH_OK - SNMP decoding and encoding library
Begemot SNMP library (libbsnmp, -lbsnmp)
struct snmp_value { struct asn_oid var; enum snmp_syntax syntax; union snmp_values { int32_t integer;/* also integer32 */ struct { u_int len; u_char *octets; } octetstring; struct asn_oid oid; u_char ipaddress[4]; uint32_t uint32; /* also gauge32, counter32, unsigned32, timeticks */ uint64_t counter64; } v; };
This structure represents one variable binding from an SNMP PDU. The field Fa var is the ASN.1 of the variable that is bound. Fa syntax contains either the syntax code of the value or an exception code for SNMPv2 and may be one of:
The field Fa v holds the actual value depending on Fa syntax . Note, that if Fa syntax is SNMP_SYNTAX_OCTETSTRING and Fa v.octetstring.len is not zero, Fa v.octetstring.octets points to a string allocated by malloc(3).enum snmp_syntax { SNMP_SYNTAX_NULL = 0, SNMP_SYNTAX_INTEGER, /* == INTEGER32 */ SNMP_SYNTAX_OCTETSTRING, SNMP_SYNTAX_OID, SNMP_SYNTAX_IPADDRESS, SNMP_SYNTAX_COUNTER, SNMP_SYNTAX_GAUGE, /* == UNSIGNED32 */ SNMP_SYNTAX_TIMETICKS, /* v2 additions */ SNMP_SYNTAX_COUNTER64, /* exceptions */ SNMP_SYNTAX_NOSUCHOBJECT, SNMP_SYNTAX_NOSUCHINSTANCE, SNMP_SYNTAX_ENDOFMIBVIEW, };
This structure contains a decoded SNMP PDU. Fa version is one of#define SNMP_COMMUNITY_MAXLEN 128 #define SNMP_MAX_BINDINGS 100 struct snmp_pdu { char community[SNMP_COMMUNITY_MAXLEN + 1]; enum snmp_version version; u_int type; /* trap only */ struct asn_oid enterprise; u_char agent_addr[4]; int32_t generic_trap; int32_t specific_trap; u_int32_t time_stamp; /* others */ int32_t request_id; int32_t error_status; int32_t error_index; /* fixes for encoding */ u_char *outer_ptr; u_char *pdu_ptr; u_char *vars_ptr; struct snmp_value bindings[SNMP_MAX_BINDINGS]; u_int nbindings; };
and Fa type is the type of the PDU.enum snmp_version { SNMP_Verr = 0, SNMP_V1 = 1, SNMP_V2c, };
The function
snmp_value_free ();
is used to free all the dynamic allocated contents of an SNMP value.
It does not free the structure pointed to by
Fa value
itself.
The function
snmp_value_parse ();
parses the ASCII representation of an SNMP value into its binary form.
This function is mainly used by the configuration file reader of
bsnmpd(1).
The function
snmp_value_copy ();
makes a deep copy of the value pointed to by
Fa from
to the structure pointed to by
Fa to .
It assumes that
Fa to
is uninitialized and will overwrite its previous contents.
It does not itself allocate the structure pointed to by
Fa to .
The function
snmp_pdu_free ();
frees all the dynamically allocated components of the PDU.
It does not itself free the structure pointed to by
Fa pdu .
The function
snmp_pdu_decode ();
decodes the PDU pointed to by
Fa buf
and stores the result into
Fa pdu .
If an error occurs in a variable binding the (1 based) index of this binding
is stored in the variable pointed to by
Fa ip .
The function
snmp_pdu_encode ();
encodes the PDU
Fa pdu
into the an octetstring in buffer
Fa buf .
The function
snmp_pdu_dump ();
dumps the PDU in a human readable form by calling
snmp_printf (.);
The function
TRUTH_MK ();
takes a C truth value (zero or non-zero) and makes an SNMP truth value (2 or 1).
The function
TRUTH_GET ();
takes an SNMP truth value and makes a C truth value (0 or 1).
The function
TRUTH_OK ();
checks, whether its argument is a legal SNMP truth value.
extern void (*snmp_error)(const char *, ...);
with a printf(3) style format string. There is a default error handler in the library that prints a message starting with `SNMP:' followed by the error message to standard error.
The function pointed to by
extern void (*snmp_printf)(const char *, ...);
is called by the
snmp_pdu_dump ();
function.
The default handler is
printf(3).
snmp_pdu_encode ();
will return one of the following return codes:
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |