⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asn1.h

📁 JdonFramework need above jdk 1.4.0 This version has passed under Tomcat 4.x/5.x JBoss 3.x/JBoss 4.0
💻 H
字号:
#ifndef _ASN1#define _ASN1#ifdef WIN32#ifndef __unix#include <winsock.h>#endif#endif#include "snmp_pp.h"#ifndef EIGHTBIT_SUBIDStypedef unsigned long	oid;#define MAX_SUBID   0xFFFFFFFF#elsetypedef unsigned char	oid;#define MAX_SUBID   0xFF#endif#define MAX_OID_LEN	    128	/* max subid's in an oid */// asn.1 values#define ASN_BOOLEAN	     (0x01)#define ASN_INTEGER	     (0x02)#define ASN_BIT_STR	     (0x03)#define ASN_OCTET_STR	 (0x04)#define ASN_NULL	     (0x05)#define ASN_OBJECT_ID	 (0x06)#define ASN_SEQUENCE	 (0x10)#define ASN_SET		     (0x11)#define ASN_UNIVERSAL	 (0x00)#define ASN_APPLICATION  (0x40)#define ASN_CONTEXT	     (0x80)#define ASN_PRIVATE	     (0xC0)#define ASN_PRIMITIVE	 (0x00)#define ASN_CONSTRUCTOR	 (0x20)#define ASN_LONG_LEN	 (0x80)#define ASN_EXTENSION_ID (0x1F)#define ASN_BIT8	     (0x80)#define IS_CONSTRUCTOR(byte)	((byte) & ASN_CONSTRUCTOR)#define IS_EXTENSION_ID(byte)	(((byte) & ASN_EXTENSION_ID) == ASN_EXTENSION_ID)#ifdef _DEBUG#include <stdio.h>#define ASNERROR( string)       printf( string )#else#define ASNERROR( string)#endif#define MAX_NAME_LEN   128 #define SNMP_VERSION_1 0#define SNMP_VERSION_2C 1#define SNMP_VERSION_2STERN 2#define SNMP_VERSION_3 3// defined types (from the SMI, RFC 1065) #define SMI_IPADDRESS   (ASN_APPLICATION | 0)#define SMI_COUNTER	    (ASN_APPLICATION | 1)#define SMI_GAUGE	    (ASN_APPLICATION | 2)#define SMI_TIMETICKS   (ASN_APPLICATION | 3)#define SMI_OPAQUE	    (ASN_APPLICATION | 4)#define SMI_NSAP        (ASN_APPLICATION | 5)#define SMI_COUNTER64   (ASN_APPLICATION | 6)#define SMI_UINTEGER    (ASN_APPLICATION | 7)#define GET_REQ_MSG	    (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x0)#define GETNEXT_REQ_MSG	(ASN_CONTEXT | ASN_CONSTRUCTOR | 0x1)#define GET_RSP_MSG	    (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x2)#define SET_REQ_MSG	    (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x3)#define TRP_REQ_MSG	    (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x4)#define GETBULK_REQ_MSG	(ASN_CONTEXT | ASN_CONSTRUCTOR | 0x5)#define INFORM_REQ_MSG	(ASN_CONTEXT | ASN_CONSTRUCTOR | 0x6)#define TRP2_REQ_MSG	(ASN_CONTEXT | ASN_CONSTRUCTOR | 0x7)#define REPORT_MSG	    (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x8)#define SNMP_NOSUCHOBJECT    (ASN_CONTEXT | ASN_PRIMITIVE | 0x0)#define SNMP_NOSUCHINSTANCE  (ASN_CONTEXT | ASN_PRIMITIVE | 0x1)#define SNMP_ENDOFMIBVIEW    (ASN_CONTEXT | ASN_PRIMITIVE | 0x2)#define SNMP_MSG_LENGTH 1500typedef struct sockaddr_in  ipaddr;// pdustruct snmp_pdu {    int	    command;	     // pdu type    unsigned long  reqid;    // Request id #ifdef _SNMPv3    unsigned long  msgid;#endif    unsigned long  errstat;	 // Error status     unsigned long  errindex; // Error index     // Trap information     oid	    *enterprise;     // System OID     int	    enterprise_length;    ipaddr  agent_addr;	    // address of object generating trap     int	    trap_type;	    // trap type     int	    specific_type;  // specific type     unsigned long  time;	// Uptime 	// vb list    struct variable_list *variables;};// vb liststruct variable_list {    struct variable_list *next_variable;    // NULL for last variable     oid	    *name;                          // Object identifier of variable     int	    name_length;                    // number of subid's in name     unsigned char   type;                   // ASN type of variable     union {                                 // value of variable 	long	*integer;	unsigned char 	*string;	oid	*objid;	unsigned char   *bitstring;	struct counter64 *counter64;    } val;    int	    val_len;};// prototypes for encoding routinesunsigned char * asn_parse_int( unsigned char *data, 			                   int *datalength, 			                   unsigned char *type, 			                   long int *intp, 			                   int intsize);unsigned char * asn_parse_unsigned_int( unsigned char *data,	                                        int *datalength,                                        unsigned char *type,                                        unsigned long *intp,                                        int	intsize);unsigned char * asn_build_int( unsigned char *data,                               int *datalength,                               unsigned char type,                               long *intp,                               int intsize);unsigned char * asn_build_unsigned_int( unsigned char *data,                                        int *datalength,                                        unsigned char type,                                        unsigned long *intp,                                        int intsize);unsigned char * asn_parse_string( unsigned char	*data,                                  int *datalength,                                  unsigned char *type,                                  unsigned char *string,                                  int *strlength);unsigned char * asn_build_string( unsigned char *data,                                  int *datalength,                                  unsigned char type,                                  unsigned char *string,                                  int strlength);unsigned char *asn_parse_header( unsigned char *data,								 int *datalength,                                 unsigned char *type);unsigned char * asn_build_header( unsigned char *data,                                  int *datalength,                                  unsigned char type,                                  int length);unsigned char * asn_build_sequence( unsigned char *data,                                    int *datalength,                                    unsigned char type,                                    int length);unsigned char * asn_parse_length( unsigned char *data,                                  unsigned long  *length);unsigned char *asn_build_length( unsigned char *data,                                 int *datalength,                                 int length);unsigned char *asn_parse_objid( unsigned char *data,                                int *datalength,                                unsigned char *type,                                oid *objid,                                int *objidlength);unsigned char *asn_build_objid( unsigned char *data,                                int *datalength,                                unsigned char type,                                oid *objid,                                int objidlength);unsigned char *asn_parse_null(unsigned char	*data,                              int *datalength,                              unsigned char *type);unsigned char *asn_build_null( unsigned char *data,                               int *datalength,                               unsigned char type);unsigned char *asn_parse_bitstring( unsigned char *data,                                    int *datalength,                                    unsigned char *type,                                    unsigned char *string,                                    int *strlength);unsigned char *asn_build_bitstring( unsigned char *data,                                    int *datalength,                                    unsigned char type,	                                    unsigned char *string,                                    int strlength);unsigned char * asn_parse_unsigned_int64(  unsigned char *data,                                           int *datalength,                                           unsigned char *type,                                           struct counter64 *cp,                                           int countersize);unsigned char * asn_build_unsigned_int64( unsigned char *data,                                          int *datalength,                                          unsigned char	type,                                          struct counter64 *cp,                                          int countersize);struct counter64 {    unsigned long high;    unsigned long low;};struct snmp_pdu * snmp_pdu_create( int command);void snmp_free_pdu( struct snmp_pdu *pdu);int snmp_build( struct snmp_pdu	*pdu, 			    unsigned char *packet, 				int *out_length, 				long version,				unsigned char* community,				int community_len);void snmp_add_var(struct snmp_pdu *pdu, 			      oid *name, 			      int name_length,			      SmiVALUE *smival);int snmp_parse( struct snmp_pdu *pdu,                unsigned char  *data,				unsigned char *community_name,				unsigned long &community_len,				snmp_version &version,                int length);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);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);#endif  // _ASN1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -