35 #ifdef SNMP_PP_NAMESPACE
39 #ifndef EIGHTBIT_SUBIDS
40 typedef unsigned long oid;
41 #define MAX_SUBID 0xFFFFFFFF
43 typedef unsigned char oid;
44 #define MAX_SUBID 0xFF
47 #define MAX_OID_LEN 128
50 #define ASN_BOOLEAN (0x01)
52 #define ASN_INTEGER (0x02)
54 #define ASN_BIT_STR (0x03)
55 #define ASN_OCTET_STR (0x04)
57 #define ASN_NULL (0x05)
59 #define ASN_OBJECT_ID (0x06)
61 #define ASN_SEQUENCE (0x10)
63 #define ASN_SET (0x11)
65 #define ASN_UNIVERSAL (0x00)
67 #ifndef ASN_APPLICATION
68 #define ASN_APPLICATION (0x40)
71 #define ASN_CONTEXT (0x80)
74 #define ASN_PRIVATE (0xC0)
77 #define ASN_PRIMITIVE (0x00)
79 #ifndef ASN_CONSTRUCTOR
80 #define ASN_CONSTRUCTOR (0x20)
82 #define ASN_LONG_LEN (0x80)
83 #define ASN_EXTENSION_ID (0x1F)
84 #define ASN_BIT8 (0x80)
86 #define IS_CONSTRUCTOR(byte) ((byte) & ASN_CONSTRUCTOR)
87 #define IS_EXTENSION_ID(byte) (((byte) & ASN_EXTENSION_ID) == ASN_EXTENSION_ID)
89 #define ASN_UNI_PRIM (ASN_UNIVERSAL | ASN_PRIMITIVE)
90 #define ASN_SEQ_CON (ASN_SEQUENCE | ASN_CONSTRUCTOR)
92 #define ASN_MAX_NAME_LEN 128
93 #define SNMP_VERSION_1 0
94 #define SNMP_VERSION_2C 1
95 #define SNMP_VERSION_2STERN 2
96 #define SNMP_VERSION_3 3
99 #define SMI_IPADDRESS (ASN_APPLICATION | 0)
100 #define SMI_COUNTER (ASN_APPLICATION | 1)
101 #define SMI_GAUGE (ASN_APPLICATION | 2)
102 #define SMI_TIMETICKS (ASN_APPLICATION | 3)
103 #define SMI_OPAQUE (ASN_APPLICATION | 4)
104 #define SMI_NSAP (ASN_APPLICATION | 5)
105 #define SMI_COUNTER64 (ASN_APPLICATION | 6)
106 #define SMI_UINTEGER (ASN_APPLICATION | 7)
108 #define GET_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x0)
109 #define GETNEXT_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x1)
110 #define GET_RSP_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x2)
111 #define SET_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x3)
112 #define TRP_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x4)
114 #define GETBULK_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x5)
115 #define INFORM_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x6)
116 #define TRP2_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x7)
117 #define REPORT_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x8)
119 #define SNMP_NOSUCHOBJECT (ASN_CONTEXT | ASN_PRIMITIVE | 0x0)
120 #define SNMP_NOSUCHINSTANCE (ASN_CONTEXT | ASN_PRIMITIVE | 0x1)
121 #define SNMP_ENDOFMIBVIEW (ASN_CONTEXT | ASN_PRIMITIVE | 0x2)
125 #define ASNERROR(string) debugprintf(3, "ASN parse error (%s)\n", string )
127 #define ASNERROR(string)
187 {
return asn_parse_int(data, datalength, type, (
long*)intp); }
193 unsigned long *intp);
201 const unsigned char type,
205 const unsigned char type,
206 const unsigned long *intp)
207 {
return asn_build_int(data, datalength, type, (
const long*)intp); }
212 unsigned long *intp);
216 unsigned char *
string,
220 const unsigned char type,
221 const unsigned char *
string,
222 const int strlength);
225 unsigned char *type);
228 unsigned char type,
int length);
236 unsigned long *length);
243 oid *objid,
int *objidlength);
247 oid *objid,
int objidlength);
252 unsigned char *type);
259 unsigned char *
string,
264 unsigned char *
string,
282 unsigned char *packet,
285 const unsigned char* community,
const int community_len);
288 oid *name,
int name_length,
292 unsigned char *data,
int data_length,
293 unsigned char *community_name,
int &community_len,
297 unsigned char *buf,
int *buf_len);
300 unsigned char *buf,
int *buf_len,
301 unsigned char *vb_buf,
int vb_buf_len);
304 oid * var_name,
int *var_name_len,
305 unsigned char var_val_type,
307 unsigned char *var_val,
311 oid *var_name,
int *var_name_len,
312 unsigned char *var_val_type,
314 unsigned char **var_val,
318 unsigned char *&data,
int &length);
321 unsigned char *&data,
int &data_len);
350 unsigned char msgFlags,
380 long *msg_id,
long *msg_max_size,
381 unsigned char *msg_flags,
382 long *msg_security_model);
407 unsigned char *scoped_pdu,
int *scoped_pdu_len,
408 unsigned char *context_engine_id,
int *context_engine_id_len,
409 unsigned char *context_name,
int *context_name_len );
434 unsigned char *outBuf,
int *max_len,
435 unsigned char *contextEngineID,
long contextEngineIDLength,
436 unsigned char *contextName,
long contextNameLength,
437 unsigned char *data,
long dataLength);
440 #ifdef SNMP_PP_NAMESPACE
DLLOPT unsigned char * asn_build_null(unsigned char *data, int *datalength, unsigned char type)
DLLOPT unsigned char * asn_build_unsigned_int64(unsigned char *data, int *datalength, unsigned char type, struct counter64 *cp)
DLLOPT unsigned char * build_data_pdu(struct snmp_pdu *pdu, unsigned char *buf, int *buf_len, unsigned char *vb_buf, int vb_buf_len)
DLLOPT unsigned char * asn_build_unsigned_int(unsigned char *data, int *datalength, unsigned char type, unsigned long *intp)
DLLOPT struct snmp_pdu * snmp_pdu_create(int command)
DLLOPT unsigned char * asn1_parse_scoped_pdu(unsigned char *scoped_pdu, int *scoped_pdu_len, unsigned char *context_engine_id, int *context_engine_id_len, unsigned char *context_name, int *context_name_len)
Parse the ScopedPDU and return the encoded values.
DLLOPT unsigned char * asn_build_header(unsigned char *data, int *datalength, unsigned char type, int length)
DLLOPT unsigned char * asn_parse_unsigned_int64(unsigned char *data, int *datalength, unsigned char *type, struct counter64 *cp)
DLLOPT unsigned char * asn_build_length(unsigned char *data, int *datalength, int length)
DLLOPT unsigned char * asn_parse_unsigned_int(unsigned char *data, int *datalength, unsigned char *type, unsigned long *intp)
DLLOPT unsigned char * asn_parse_null(unsigned char *data, int *datalength, unsigned char *type)
DLLOPT void asn_build_subid(unsigned long subid, unsigned char *&bp)
snmp_version
The SNMP version to use is passed with this enum.
DLLOPT unsigned char * snmp_build_var_op(unsigned char *data, oid *var_name, int *var_name_len, unsigned char var_val_type, int var_val_len, unsigned char *var_val, int *listlength)
DLLOPT int snmp_parse_vb(struct snmp_pdu *pdu, unsigned char *&data, int &data_len)
DLLOPT unsigned char * build_vb(struct snmp_pdu *pdu, unsigned char *buf, int *buf_len)
DLLOPT unsigned char * asn_parse_bitstring(unsigned char *data, int *datalength, unsigned char *type, unsigned char *string, int *strlength)
DLLOPT unsigned char * asn_build_int(unsigned char *data, int *datalength, const unsigned char type, const long *intp)
DLLOPT unsigned char * asn_build_bitstring(unsigned char *data, int *datalength, unsigned char type, unsigned char *string, int strlength)
DLLOPT void clear_pdu(struct snmp_pdu *pdu, bool clear_all=false)
DLLOPT unsigned char * asn_build_sequence(unsigned char *data, int *datalength, unsigned char type, int length)
DLLOPT unsigned char * asn_parse_length(unsigned char *data, unsigned long *length)
DLLOPT unsigned char * asn_build_string(unsigned char *data, int *datalength, const unsigned char type, const unsigned char *string, const int strlength)
struct variable_list * variables
struct counter64 * counter64
DLLOPT unsigned char * asn_parse_int(unsigned char *data, int *datalength, unsigned char *type, long *intp)
DLLOPT unsigned char * asn_parse_string(unsigned char *data, int *datalength, unsigned char *type, unsigned char *string, int *strlength)
struct variable_list * next_variable
unsigned long maxsize_scopedpdu
DLLOPT void snmp_free_pdu(struct snmp_pdu *pdu)
DLLOPT unsigned char * asn1_build_header_data(unsigned char *outBuf, int *maxLength, long msgID, long maxMessageSize, unsigned char msgFlags, long securityModel)
Encode the given values for the HeaderData into the buffer.
DLLOPT unsigned char * asn_parse_header(unsigned char *data, int *datalength, unsigned char *type)
unsigned char * bitstring
DLLOPT void snmp_add_var(struct snmp_pdu *pdu, oid *name, int name_length, SmiVALUE *smival)
DLLOPT int snmp_parse(struct snmp_pdu *pdu, unsigned char *data, int data_length, unsigned char *community_name, int &community_len, snmp_version &version)
struct sockaddr_in ipaddr
DLLOPT unsigned char * asn1_parse_header_data(unsigned char *buf, int *buf_len, long *msg_id, long *msg_max_size, unsigned char *msg_flags, long *msg_security_model)
Parse the filled HeaderData of a SNMPv3 message and return the encoded values.
DLLOPT int snmp_build(struct snmp_pdu *pdu, unsigned char *packet, int *out_length, const long version, const unsigned char *community, const int community_len)
DLLOPT unsigned char * asn1_build_scoped_pdu(unsigned char *outBuf, int *max_len, unsigned char *contextEngineID, long contextEngineIDLength, unsigned char *contextName, long contextNameLength, unsigned char *data, long dataLength)
Encode the given values for the scopedPDU into the buffer.
DLLOPT unsigned char * snmp_parse_var_op(unsigned char *data, oid *var_name, int *var_name_len, unsigned char *var_val_type, int *var_val_len, unsigned char **var_val, int *listlength)
DLLOPT unsigned char * asn_parse_objid(unsigned char *data, int *datalength, unsigned char *type, oid *objid, int *objidlength)
DLLOPT int snmp_parse_data_pdu(struct snmp_pdu *pdu, unsigned char *&data, int &length)
DLLOPT unsigned char * asn_build_objid(unsigned char *data, int *datalength, unsigned char type, oid *objid, int objidlength)