Snmp.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:23k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /*++
  2. Copyright (C) 1992-1999 Microsoft Corporation
  3. Module Name:
  4.     snmp.h
  5. Abstract:
  6.     Definitions for SNMP development.
  7. --*/
  8. #ifndef _INC_SNMP
  9. #define _INC_SNMP
  10. #if _MSC_VER > 1000
  11. #pragma once
  12. #endif
  13. ///////////////////////////////////////////////////////////////////////////////
  14. //                                                                           //
  15. // Additional Header Files                                                   //
  16. //                                                                           //
  17. ///////////////////////////////////////////////////////////////////////////////
  18. #include <windows.h>
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22. ///////////////////////////////////////////////////////////////////////////////
  23. //                                                                           //
  24. // SNMP Type Definitions                                                     //
  25. //                                                                           //
  26. ///////////////////////////////////////////////////////////////////////////////
  27. #include <pshpack4.h>
  28. typedef struct {
  29.     BYTE * stream;
  30.     UINT   length;
  31.     BOOL   dynamic;
  32. } AsnOctetString;
  33. typedef struct {
  34.     UINT   idLength;
  35.     UINT * ids;
  36. } AsnObjectIdentifier;
  37. typedef LONG                    AsnInteger32;
  38. typedef ULONG                   AsnUnsigned32;
  39. typedef ULARGE_INTEGER          AsnCounter64;
  40. typedef AsnUnsigned32           AsnCounter32;
  41. typedef AsnUnsigned32           AsnGauge32;
  42. typedef AsnUnsigned32           AsnTimeticks;
  43. typedef AsnOctetString          AsnBits;
  44. typedef AsnOctetString          AsnSequence;
  45. typedef AsnOctetString          AsnImplicitSequence;
  46. typedef AsnOctetString          AsnIPAddress;
  47. typedef AsnOctetString          AsnNetworkAddress;
  48. typedef AsnOctetString          AsnDisplayString;
  49. typedef AsnOctetString          AsnOpaque;
  50. typedef struct {
  51.     BYTE asnType;
  52.     union {
  53.         AsnInteger32            number;     // ASN_INTEGER
  54.                                             // ASN_INTEGER32
  55.         AsnUnsigned32           unsigned32; // ASN_UNSIGNED32
  56.         AsnCounter64            counter64;  // ASN_COUNTER64
  57.         AsnOctetString          string;     // ASN_OCTETSTRING
  58.         AsnBits                 bits;       // ASN_BITS
  59.         AsnObjectIdentifier     object;     // ASN_OBJECTIDENTIFIER
  60.         AsnSequence             sequence;   // ASN_SEQUENCE
  61.         AsnIPAddress            address;    // ASN_IPADDRESS
  62.         AsnCounter32            counter;    // ASN_COUNTER32
  63.         AsnGauge32              gauge;      // ASN_GAUGE32
  64.         AsnTimeticks            ticks;      // ASN_TIMETICKS
  65.         AsnOpaque               arbitrary;  // ASN_OPAQUE
  66.     } asnValue;
  67. } AsnAny;
  68. typedef AsnObjectIdentifier     AsnObjectName;
  69. typedef AsnAny                  AsnObjectSyntax;
  70. typedef struct {
  71.     AsnObjectName    name;
  72.     AsnObjectSyntax  value;
  73. } SnmpVarBind;
  74. typedef struct {
  75.     SnmpVarBind * list;
  76.     UINT          len;
  77. } SnmpVarBindList;
  78. #include <poppack.h>
  79. #ifndef _INC_WINSNMP
  80. ///////////////////////////////////////////////////////////////////////////////
  81. //                                                                           //
  82. // ASN/BER Base Types                                                        //
  83. //                                                                           //
  84. ///////////////////////////////////////////////////////////////////////////////
  85. #define ASN_UNIVERSAL                   0x00
  86. #define ASN_APPLICATION                 0x40
  87. #define ASN_CONTEXT                     0x80
  88. #define ASN_PRIVATE                     0xC0
  89. #define ASN_PRIMITIVE                   0x00
  90. #define ASN_CONSTRUCTOR                 0x20
  91. ///////////////////////////////////////////////////////////////////////////////
  92. //                                                                           //
  93. // PDU Type Values                                                           //
  94. //                                                                           //
  95. ///////////////////////////////////////////////////////////////////////////////
  96. #define SNMP_PDU_GET                (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x0)
  97. #define SNMP_PDU_GETNEXT            (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x1)
  98. #define SNMP_PDU_RESPONSE           (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x2)
  99. #define SNMP_PDU_SET                (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x3)
  100. #define SNMP_PDU_V1TRAP             (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x4)
  101. #define SNMP_PDU_GETBULK            (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x5)
  102. #define SNMP_PDU_INFORM             (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x6)
  103. #define SNMP_PDU_TRAP               (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x7)
  104. #endif // _INC_WINSNMP
  105. ///////////////////////////////////////////////////////////////////////////////
  106. //                                                                           //
  107. // SNMP Simple Syntax Values                                                 //
  108. //                                                                           //
  109. ///////////////////////////////////////////////////////////////////////////////
  110. #define ASN_INTEGER                 (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x02)
  111. #define ASN_BITS                    (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x03)
  112. #define ASN_OCTETSTRING             (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x04)
  113. #define ASN_NULL                    (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x05)
  114. #define ASN_OBJECTIDENTIFIER        (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x06)
  115. #define ASN_INTEGER32               ASN_INTEGER
  116. ///////////////////////////////////////////////////////////////////////////////
  117. //                                                                           //
  118. // SNMP Constructor Syntax Values                                            //
  119. //                                                                           //
  120. ///////////////////////////////////////////////////////////////////////////////
  121. #define ASN_SEQUENCE                (ASN_UNIVERSAL | ASN_CONSTRUCTOR | 0x10)
  122. #define ASN_SEQUENCEOF              ASN_SEQUENCE
  123. ///////////////////////////////////////////////////////////////////////////////
  124. //                                                                           //
  125. // SNMP Application Syntax Values                                            //
  126. //                                                                           //
  127. ///////////////////////////////////////////////////////////////////////////////
  128. #define ASN_IPADDRESS               (ASN_APPLICATION | ASN_PRIMITIVE | 0x00)
  129. #define ASN_COUNTER32               (ASN_APPLICATION | ASN_PRIMITIVE | 0x01)
  130. #define ASN_GAUGE32                 (ASN_APPLICATION | ASN_PRIMITIVE | 0x02)
  131. #define ASN_TIMETICKS               (ASN_APPLICATION | ASN_PRIMITIVE | 0x03)
  132. #define ASN_OPAQUE                  (ASN_APPLICATION | ASN_PRIMITIVE | 0x04)
  133. #define ASN_COUNTER64               (ASN_APPLICATION | ASN_PRIMITIVE | 0x06)
  134. #define ASN_UNSIGNED32              (ASN_APPLICATION | ASN_PRIMITIVE | 0x07)
  135. ///////////////////////////////////////////////////////////////////////////////
  136. //                                                                           //
  137. // SNMP Exception Conditions                                                 //
  138. //                                                                           //
  139. ///////////////////////////////////////////////////////////////////////////////
  140. #define SNMP_EXCEPTION_NOSUCHOBJECT     (ASN_CONTEXT | ASN_PRIMITIVE | 0x00)
  141. #define SNMP_EXCEPTION_NOSUCHINSTANCE   (ASN_CONTEXT | ASN_PRIMITIVE | 0x01)
  142. #define SNMP_EXCEPTION_ENDOFMIBVIEW     (ASN_CONTEXT | ASN_PRIMITIVE | 0x02)
  143. ///////////////////////////////////////////////////////////////////////////////
  144. //                                                                           //
  145. // SNMP Request Types (used in SnmpExtensionQueryEx)                         //
  146. //                                                                           //
  147. ///////////////////////////////////////////////////////////////////////////////
  148. #define SNMP_EXTENSION_GET          SNMP_PDU_GET
  149. #define SNMP_EXTENSION_GET_NEXT     SNMP_PDU_GETNEXT
  150. #define SNMP_EXTENSION_GET_BULK     SNMP_PDU_GETBULK
  151. #define SNMP_EXTENSION_SET_TEST     (ASN_PRIVATE | ASN_CONSTRUCTOR | 0x0)
  152. #define SNMP_EXTENSION_SET_COMMIT   SNMP_PDU_SET
  153. #define SNMP_EXTENSION_SET_UNDO     (ASN_PRIVATE | ASN_CONSTRUCTOR | 0x1)
  154. #define SNMP_EXTENSION_SET_CLEANUP  (ASN_PRIVATE | ASN_CONSTRUCTOR | 0x2)
  155. ///////////////////////////////////////////////////////////////////////////////
  156. //                                                                           //
  157. // SNMP Error Codes                                                          //
  158. //                                                                           //
  159. ///////////////////////////////////////////////////////////////////////////////
  160. #define SNMP_ERRORSTATUS_NOERROR                0
  161. #define SNMP_ERRORSTATUS_TOOBIG                 1
  162. #define SNMP_ERRORSTATUS_NOSUCHNAME             2
  163. #define SNMP_ERRORSTATUS_BADVALUE               3
  164. #define SNMP_ERRORSTATUS_READONLY               4
  165. #define SNMP_ERRORSTATUS_GENERR                 5
  166. #define SNMP_ERRORSTATUS_NOACCESS               6
  167. #define SNMP_ERRORSTATUS_WRONGTYPE              7
  168. #define SNMP_ERRORSTATUS_WRONGLENGTH            8
  169. #define SNMP_ERRORSTATUS_WRONGENCODING          9
  170. #define SNMP_ERRORSTATUS_WRONGVALUE             10
  171. #define SNMP_ERRORSTATUS_NOCREATION             11
  172. #define SNMP_ERRORSTATUS_INCONSISTENTVALUE      12
  173. #define SNMP_ERRORSTATUS_RESOURCEUNAVAILABLE    13
  174. #define SNMP_ERRORSTATUS_COMMITFAILED           14
  175. #define SNMP_ERRORSTATUS_UNDOFAILED             15
  176. #define SNMP_ERRORSTATUS_AUTHORIZATIONERROR     16
  177. #define SNMP_ERRORSTATUS_NOTWRITABLE            17
  178. #define SNMP_ERRORSTATUS_INCONSISTENTNAME       18
  179. ///////////////////////////////////////////////////////////////////////////////
  180. //                                                                           //
  181. // SNMPv1 Trap Types                                                         //
  182. //                                                                           //
  183. ///////////////////////////////////////////////////////////////////////////////
  184. #define SNMP_GENERICTRAP_COLDSTART              0
  185. #define SNMP_GENERICTRAP_WARMSTART              1
  186. #define SNMP_GENERICTRAP_LINKDOWN               2
  187. #define SNMP_GENERICTRAP_LINKUP                 3
  188. #define SNMP_GENERICTRAP_AUTHFAILURE            4
  189. #define SNMP_GENERICTRAP_EGPNEIGHLOSS           5
  190. #define SNMP_GENERICTRAP_ENTERSPECIFIC          6
  191. ///////////////////////////////////////////////////////////////////////////////
  192. //                                                                           //
  193. // SNMP Access Types                                                         //
  194. //                                                                           //
  195. ///////////////////////////////////////////////////////////////////////////////
  196. #define SNMP_ACCESS_NONE                        0
  197. #define SNMP_ACCESS_NOTIFY                      1
  198. #define SNMP_ACCESS_READ_ONLY                   2
  199. #define SNMP_ACCESS_READ_WRITE                  3
  200. #define SNMP_ACCESS_READ_CREATE                 4
  201. ///////////////////////////////////////////////////////////////////////////////
  202. //                                                                           //
  203. // SNMP API Return Code Definitions                                          //
  204. //                                                                           //
  205. ///////////////////////////////////////////////////////////////////////////////
  206. #define SNMPAPI                                 INT
  207. #define SNMP_FUNC_TYPE                          WINAPI
  208. #define SNMPAPI_NOERROR                         TRUE
  209. #define SNMPAPI_ERROR                           FALSE
  210. ///////////////////////////////////////////////////////////////////////////////
  211. //                                                                           //
  212. // SNMP Extension API Prototypes                                             //
  213. //                                                                           //
  214. ///////////////////////////////////////////////////////////////////////////////
  215. BOOL
  216. SNMP_FUNC_TYPE
  217. SnmpExtensionInit(
  218.     DWORD                 dwUptimeReference,
  219.     HANDLE *              phSubagentTrapEvent,
  220.     AsnObjectIdentifier * pFirstSupportedRegion
  221.     );
  222. BOOL
  223. SNMP_FUNC_TYPE
  224. SnmpExtensionInitEx(
  225.     AsnObjectIdentifier * pNextSupportedRegion
  226.     );
  227. BOOL
  228. SNMP_FUNC_TYPE
  229. SnmpExtensionMonitor(
  230.     LPVOID            pAgentMgmtData
  231.     );
  232. BOOL
  233. SNMP_FUNC_TYPE
  234. SnmpExtensionQuery(
  235.     BYTE              bPduType,
  236.     SnmpVarBindList * pVarBindList,
  237.     AsnInteger32 *    pErrorStatus,
  238.     AsnInteger32 *    pErrorIndex
  239.     );
  240. BOOL
  241. SNMP_FUNC_TYPE
  242. SnmpExtensionQueryEx(
  243.     UINT              nRequestType,
  244.     UINT              nTransactionId,
  245.     SnmpVarBindList * pVarBindList,
  246.     AsnOctetString *  pContextInfo,
  247.     AsnInteger32 *    pErrorStatus,
  248.     AsnInteger32 *    pErrorIndex
  249.     );
  250. BOOL
  251. SNMP_FUNC_TYPE
  252. SnmpExtensionTrap(
  253.     AsnObjectIdentifier * pEnterpriseOid,
  254.     AsnInteger32 *        pGenericTrapId,
  255.     AsnInteger32 *        pSpecificTrapId,
  256.     AsnTimeticks *        pTimeStamp,
  257.     SnmpVarBindList *     pVarBindList
  258.     );
  259. VOID
  260. SNMP_FUNC_TYPE
  261. SnmpExtensionClose(
  262.     );
  263. ///////////////////////////////////////////////////////////////////////////////
  264. //                                                                           //
  265. // SNMP Extension API Type Definitions                                       //
  266. //                                                                           //
  267. ///////////////////////////////////////////////////////////////////////////////
  268. typedef BOOL (SNMP_FUNC_TYPE * PFNSNMPEXTENSIONINIT)(
  269.     DWORD                 dwUpTimeReference,
  270.     HANDLE *              phSubagentTrapEvent,
  271.     AsnObjectIdentifier * pFirstSupportedRegion
  272.     );
  273. typedef BOOL (SNMP_FUNC_TYPE * PFNSNMPEXTENSIONINITEX)(
  274.     AsnObjectIdentifier * pNextSupportedRegion
  275.     );
  276. typedef BOOL (SNMP_FUNC_TYPE * PFNSNMPEXTENSIONMONITOR)(
  277.     LPVOID            pAgentMgmtData
  278.     );
  279. typedef BOOL (SNMP_FUNC_TYPE * PFNSNMPEXTENSIONQUERY)(
  280.     BYTE              bPduType,
  281.     SnmpVarBindList * pVarBindList,
  282.     AsnInteger32 *    pErrorStatus,
  283.     AsnInteger32 *    pErrorIndex
  284.     );
  285. typedef BOOL (SNMP_FUNC_TYPE * PFNSNMPEXTENSIONQUERYEX)(
  286.     UINT              nRequestType,
  287.     UINT              nTransactionId,
  288.     SnmpVarBindList * pVarBindList,
  289.     AsnOctetString *  pContextInfo,
  290.     AsnInteger32 *    pErrorStatus,
  291.     AsnInteger32 *    pErrorIndex
  292.     );
  293. typedef BOOL (SNMP_FUNC_TYPE * PFNSNMPEXTENSIONTRAP)(
  294.     AsnObjectIdentifier * pEnterpriseOid,
  295.     AsnInteger32 *        pGenericTrapId,
  296.     AsnInteger32 *        pSpecificTrapId,
  297.     AsnTimeticks *        pTimeStamp,
  298.     SnmpVarBindList *     pVarBindList
  299.     );
  300. typedef VOID (SNMP_FUNC_TYPE * PFNSNMPEXTENSIONCLOSE)(
  301.     );
  302. ///////////////////////////////////////////////////////////////////////////////
  303. //                                                                           //
  304. // SNMP API Prototypes                                                       //
  305. //                                                                           //
  306. ///////////////////////////////////////////////////////////////////////////////
  307. SNMPAPI
  308. SNMP_FUNC_TYPE
  309. SnmpUtilOidCpy(
  310.     AsnObjectIdentifier * pOidDst,
  311.     AsnObjectIdentifier * pOidSrc
  312.     );
  313. SNMPAPI
  314. SNMP_FUNC_TYPE
  315. SnmpUtilOidAppend(
  316.     AsnObjectIdentifier * pOidDst,
  317.     AsnObjectIdentifier * pOidSrc
  318.     );
  319. SNMPAPI
  320. SNMP_FUNC_TYPE
  321. SnmpUtilOidNCmp(
  322.     AsnObjectIdentifier * pOid1,
  323.     AsnObjectIdentifier * pOid2,
  324.     UINT                  nSubIds
  325.     );
  326. SNMPAPI
  327. SNMP_FUNC_TYPE
  328. SnmpUtilOidCmp(
  329.     AsnObjectIdentifier * pOid1,
  330.     AsnObjectIdentifier * pOid2
  331.     );
  332. VOID
  333. SNMP_FUNC_TYPE
  334. SnmpUtilOidFree(
  335.     AsnObjectIdentifier * pOid
  336.     );
  337. SNMPAPI
  338. SNMP_FUNC_TYPE
  339. SnmpUtilOctetsCmp(
  340.     AsnOctetString * pOctets1,
  341.     AsnOctetString * pOctets2
  342.     );
  343. SNMPAPI
  344. SNMP_FUNC_TYPE
  345. SnmpUtilOctetsNCmp(
  346.     AsnOctetString * pOctets1,
  347.     AsnOctetString * pOctets2,
  348.     UINT             nChars
  349.     );
  350. SNMPAPI
  351. SNMP_FUNC_TYPE
  352. SnmpUtilOctetsCpy(
  353.     AsnOctetString * pOctetsDst,
  354.     AsnOctetString * pOctetsSrc
  355.     );
  356. VOID
  357. SNMP_FUNC_TYPE
  358. SnmpUtilOctetsFree(
  359.     AsnOctetString * pOctets
  360.     );
  361. SNMPAPI
  362. SNMP_FUNC_TYPE
  363. SnmpUtilAsnAnyCpy(
  364.     AsnAny * pAnyDst,
  365.     AsnAny * pAnySrc
  366.     );
  367. VOID
  368. SNMP_FUNC_TYPE
  369. SnmpUtilAsnAnyFree(
  370.     AsnAny * pAny
  371.     );
  372. SNMPAPI
  373. SNMP_FUNC_TYPE
  374. SnmpUtilVarBindCpy(
  375.     SnmpVarBind * pVbDst,
  376.     SnmpVarBind * pVbSrc
  377.     );
  378. VOID
  379. SNMP_FUNC_TYPE
  380. SnmpUtilVarBindFree(
  381.     SnmpVarBind * pVb
  382.     );
  383. SNMPAPI
  384. SNMP_FUNC_TYPE
  385. SnmpUtilVarBindListCpy(
  386.     SnmpVarBindList * pVblDst,
  387.     SnmpVarBindList * pVblSrc
  388.     );
  389. VOID
  390. SNMP_FUNC_TYPE
  391. SnmpUtilVarBindListFree(
  392.     SnmpVarBindList * pVbl
  393.     );
  394. VOID
  395. SNMP_FUNC_TYPE
  396. SnmpUtilMemFree(
  397.     LPVOID pMem
  398.     );
  399. LPVOID
  400. SNMP_FUNC_TYPE
  401. SnmpUtilMemAlloc(
  402.     UINT nBytes
  403.     );
  404. LPVOID
  405. SNMP_FUNC_TYPE
  406. SnmpUtilMemReAlloc(
  407.     LPVOID pMem,
  408.     UINT   nBytes
  409.     );
  410. LPSTR
  411. SNMP_FUNC_TYPE
  412. SnmpUtilOidToA(
  413.     IN AsnObjectIdentifier *Oid
  414.     );
  415. LPSTR
  416. SNMP_FUNC_TYPE
  417. SnmpUtilIdsToA(
  418.     IN UINT *Ids,
  419.     IN UINT IdLength
  420.     );
  421. VOID
  422. SNMP_FUNC_TYPE
  423. SnmpUtilPrintOid(
  424.     IN AsnObjectIdentifier *Oid
  425.     );
  426. VOID
  427. SNMP_FUNC_TYPE
  428. SnmpUtilPrintAsnAny(
  429.     AsnAny * pAny
  430.     );
  431. DWORD
  432. SNMP_FUNC_TYPE
  433. SnmpSvcGetUptime(
  434.     );
  435. VOID
  436. SNMP_FUNC_TYPE
  437. SnmpSvcSetLogLevel(
  438.     INT nLogLevel
  439.     );
  440. VOID
  441. SNMP_FUNC_TYPE
  442. SnmpSvcSetLogType(
  443.     INT nLogType
  444.     );
  445. ///////////////////////////////////////////////////////////////////////////////
  446. //                                                                           //
  447. // SNMP Debugging Definitions                                                //
  448. //                                                                           //
  449. ///////////////////////////////////////////////////////////////////////////////
  450. #define SNMP_LOG_SILENT                 0x0
  451. #define SNMP_LOG_FATAL                  0x1
  452. #define SNMP_LOG_ERROR                  0x2
  453. #define SNMP_LOG_WARNING                0x3
  454. #define SNMP_LOG_TRACE                  0x4
  455. #define SNMP_LOG_VERBOSE                0x5
  456. #define SNMP_OUTPUT_TO_CONSOLE          0x1
  457. #define SNMP_OUTPUT_TO_LOGFILE          0x2
  458. #define SNMP_OUTPUT_TO_EVENTLOG         0x4  // no longer supported
  459. #define SNMP_OUTPUT_TO_DEBUGGER         0x8
  460. ///////////////////////////////////////////////////////////////////////////////
  461. //                                                                           //
  462. // SNMP Debugging Prototypes                                                 //
  463. //                                                                           //
  464. ///////////////////////////////////////////////////////////////////////////////
  465. VOID
  466. SNMP_FUNC_TYPE
  467. SnmpUtilDbgPrint(
  468.     IN INT nLogLevel,   // see log levels above...
  469.     IN LPSTR szFormat,
  470.     IN ...
  471.     );
  472. #if DBG
  473. #define SNMPDBG(_x_)                    SnmpUtilDbgPrint _x_
  474. #else
  475. #define SNMPDBG(_x_)
  476. #endif
  477. ///////////////////////////////////////////////////////////////////////////////
  478. //                                                                           //
  479. // Miscellaneous definitions                                                 //
  480. //                                                                           //
  481. ///////////////////////////////////////////////////////////////////////////////
  482. #define DEFINE_SIZEOF(Array)        (sizeof(Array)/sizeof((Array)[0]))
  483. #define DEFINE_OID(SubIdArray)      {DEFINE_SIZEOF(SubIdArray),(SubIdArray)}
  484. #define DEFINE_NULLOID()            {0,NULL}
  485. #define DEFINE_NULLOCTETS()         {NULL,0,FALSE}
  486. #define DEFAULT_SNMP_PORT_UDP       161
  487. #define DEFAULT_SNMP_PORT_IPX       36879
  488. #define DEFAULT_SNMPTRAP_PORT_UDP   162
  489. #define DEFAULT_SNMPTRAP_PORT_IPX   36880
  490. #define SNMP_MAX_OID_LEN            128
  491. ///////////////////////////////////////////////////////////////////////////////
  492. //                                                                           //
  493. // API Error Code Definitions                                                //
  494. //                                                                           //
  495. ///////////////////////////////////////////////////////////////////////////////
  496. #define SNMP_MEM_ALLOC_ERROR            1
  497. #define SNMP_BERAPI_INVALID_LENGTH      10
  498. #define SNMP_BERAPI_INVALID_TAG         11
  499. #define SNMP_BERAPI_OVERFLOW            12
  500. #define SNMP_BERAPI_SHORT_BUFFER        13
  501. #define SNMP_BERAPI_INVALID_OBJELEM     14
  502. #define SNMP_PDUAPI_UNRECOGNIZED_PDU    20
  503. #define SNMP_PDUAPI_INVALID_ES          21
  504. #define SNMP_PDUAPI_INVALID_GT          22
  505. #define SNMP_AUTHAPI_INVALID_VERSION    30
  506. #define SNMP_AUTHAPI_INVALID_MSG_TYPE   31
  507. #define SNMP_AUTHAPI_TRIV_AUTH_FAILED   32
  508. ///////////////////////////////////////////////////////////////////////////////
  509. //                                                                           //
  510. // Support for old definitions (support disabled via SNMPSTRICT)             //
  511. //                                                                           //
  512. ///////////////////////////////////////////////////////////////////////////////
  513. #ifndef SNMPSTRICT
  514. #define SNMP_oidcpy                     SnmpUtilOidCpy
  515. #define SNMP_oidappend                  SnmpUtilOidAppend
  516. #define SNMP_oidncmp                    SnmpUtilOidNCmp
  517. #define SNMP_oidcmp                     SnmpUtilOidCmp
  518. #define SNMP_oidfree                    SnmpUtilOidFree
  519. #define SNMP_CopyVarBindList            SnmpUtilVarBindListCpy
  520. #define SNMP_FreeVarBindList            SnmpUtilVarBindListFree
  521. #define SNMP_CopyVarBind                SnmpUtilVarBindCpy
  522. #define SNMP_FreeVarBind                SnmpUtilVarBindFree
  523. #define SNMP_printany                   SnmpUtilPrintAsnAny
  524. #define SNMP_free                       SnmpUtilMemFree
  525. #define SNMP_malloc                     SnmpUtilMemAlloc
  526. #define SNMP_realloc                    SnmpUtilMemReAlloc
  527. #define SNMP_DBG_free                   SnmpUtilMemFree
  528. #define SNMP_DBG_malloc                 SnmpUtilMemAlloc
  529. #define SNMP_DBG_realloc                SnmpUtilMemReAlloc
  530. #define ASN_RFC1155_IPADDRESS           ASN_IPADDRESS
  531. #define ASN_RFC1155_COUNTER             ASN_COUNTER32
  532. #define ASN_RFC1155_GAUGE               ASN_GAUGE32
  533. #define ASN_RFC1155_TIMETICKS           ASN_TIMETICKS
  534. #define ASN_RFC1155_OPAQUE              ASN_OPAQUE
  535. #define ASN_RFC1213_DISPSTRING          ASN_OCTETSTRING
  536. #define ASN_RFC1157_GETREQUEST          SNMP_PDU_GET
  537. #define ASN_RFC1157_GETNEXTREQUEST      SNMP_PDU_GETNEXT
  538. #define ASN_RFC1157_GETRESPONSE         SNMP_PDU_RESPONSE
  539. #define ASN_RFC1157_SETREQUEST          SNMP_PDU_SET
  540. #define ASN_RFC1157_TRAP                SNMP_PDU_V1TRAP
  541. #define ASN_CONTEXTSPECIFIC             ASN_CONTEXT
  542. #define ASN_PRIMATIVE                   ASN_PRIMITIVE
  543. #define RFC1157VarBindList              SnmpVarBindList
  544. #define RFC1157VarBind                  SnmpVarBind
  545. #define AsnInteger                      AsnInteger32
  546. #define AsnCounter                      AsnCounter32
  547. #define AsnGauge                        AsnGauge32
  548. #endif // SNMPSTRICT
  549. #ifdef __cplusplus
  550. }
  551. #endif
  552. #endif // _INC_SNMP