snmperrs.h
上传用户:ets1996
上传日期:2014-09-30
资源大小:353k
文件大小:12k
源码类别:

SNMP编程

开发平台:

Visual C++

  1. /*_############################################################################
  2.   _## 
  3.   _##  snmperrs.h  
  4.   _##
  5.   _##  SNMP++v3.2.22
  6.   _##  -----------------------------------------------
  7.   _##  Copyright (c) 2001-2007 Jochen Katz, Frank Fock
  8.   _##
  9.   _##  This software is based on SNMP++2.6 from Hewlett Packard:
  10.   _##  
  11.   _##    Copyright (c) 1996
  12.   _##    Hewlett-Packard Company
  13.   _##  
  14.   _##  ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
  15.   _##  Permission to use, copy, modify, distribute and/or sell this software 
  16.   _##  and/or its documentation is hereby granted without fee. User agrees 
  17.   _##  to display the above copyright notice and this license notice in all 
  18.   _##  copies of the software and any documentation of the software. User 
  19.   _##  agrees to assume all liability for the use of the software; 
  20.   _##  Hewlett-Packard and Jochen Katz make no representations about the 
  21.   _##  suitability of this software for any purpose. It is provided 
  22.   _##  "AS-IS" without warranty of any kind, either express or implied. User 
  23.   _##  hereby grants a royalty-free license to any and all derivatives based
  24.   _##  upon this software code base. 
  25.   _##  
  26.   _##  Stuttgart, Germany, Wed May  2 23:22:30 CEST 2007 
  27.   _##  
  28.   _##########################################################################*/
  29. /*===================================================================
  30.   Copyright (c) 1999
  31.   Hewlett-Packard Company
  32.   ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
  33.   Permission to use, copy, modify, distribute and/or sell this software
  34.   and/or its documentation is hereby granted without fee. User agrees
  35.   to display the above copyright notice and this license notice in all
  36.   copies of the software and any documentation of the software. User
  37.   agrees to assume all liability for the use of the software; Hewlett-Packard
  38.   makes no representations about the suitability of this software for any
  39.   purpose. It is provided "AS-IS without warranty of any kind,either express
  40.   or implied. User hereby grants a royalty-free license to any and all
  41.   derivatives based upon this software code base.
  42.   SNMP++ S N M P E R R S. H
  43.   SNMP++ ERROR CODE AND STRING DEFINITIONS
  44.   DESCRIPTION:
  45.   Definition of error macros and error strings
  46.   DESIGN + AUTHOR:
  47.   Jeff Meyer
  48.   LANGUAGE:
  49.   ANSI C++
  50.   OPERATING SYSTEMS:
  51.   WIN32
  52.   BSD UNIX
  53. ============================================================================*/
  54. // $Id: snmperrs.h 287 2007-03-22 22:37:09Z katz $
  55. #ifndef _SNMPERRS_H
  56. #define _SNMPERRS_H
  57. #include "snmp_pp/config_snmp_pp.h"
  58. #ifdef SNMP_PP_NAMESPACE
  59. namespace Snmp_pp {
  60. #endif
  61. //-------[ Positive SNMP ++ Error Return Codes ]------------------------------
  62. /** @name Pdu error codes
  63.  * These values are error status values from RFC 1905
  64.  *
  65.  * The values can be returned via Pdu::get_error_status()
  66.  */
  67. //@{
  68. #define SNMP_ERROR_SUCCESS           0 //!< Success Status
  69. #define SNMP_ERROR_TOO_BIG           1 //!< Pdu encoding too big
  70. #define SNMP_ERROR_NO_SUCH_NAME      2 //!< No such VB name, see error index
  71. #define SNMP_ERROR_BAD_VALUE         3 //!< Bad Vb
  72. #define SNMP_ERROR_READ_ONLY      4 //!< VB is read only, see error index
  73. #define SNMP_ERROR_GENERAL_VB_ERR    5 //!< General VB error, see error index
  74. #define SNMP_ERROR_NO_ACCESS         6 //!< No access to MIBs data
  75. #define SNMP_ERROR_WRONG_TYPE        7 //!< Requested type was incorrect
  76. #define SNMP_ERROR_WRONG_LENGTH      8 //!< Request Pdu has inccorect length
  77. #define SNMP_ERROR_WRONG_ENCODING    9 //!< Request Pdu has wrong encoding
  78. #define SNMP_ERROR_WRONG_VALUE      10 //!< Request Pdu has wrong value
  79. #define SNMP_ERROR_NO_CREATION      11 //!< Unable to create object specified
  80. #define SNMP_ERROR_INCONSIST_VAL    12 //!< Inconsistent value in request
  81. #define SNMP_ERROR_RESOURCE_UNAVAIL 13 //!< Resources unavailable
  82. #define SNMP_ERROR_COMITFAIL        14 //!< Unable to comit
  83. #define SNMP_ERROR_UNDO_FAIL        15 //!< Unable to undo
  84. #define SNMP_ERROR_AUTH_ERR         16 //!< Authorization error
  85. #define SNMP_ERROR_NOT_WRITEABLE    17 //!< Mib Object not writeable
  86. #define SNMP_ERROR_INCONSIS_NAME    18 //!< Inconsistent naming used
  87. //@}
  88. //-------[ Negative SNMP ++ Result/Error Return Codes ]-------------------
  89. /** @name Snmp class return codes
  90.  */
  91. //@{
  92. // General
  93. #define SNMP_CLASS_SUCCESS             0 //!< success
  94. #define SNMP_CLASS_ERROR              -1 //!< general error
  95. #define SNMP_CLASS_RESOURCE_UNAVAIL   -2 //!< e.g., malloc failed
  96. #define SNMP_CLASS_INTERNAL_ERROR     -3 //!< unexpected / internal error
  97. #define SNMP_CLASS_UNSUPPORTED        -4 //!< unsupported function
  98. // Callback reasons:
  99. #define SNMP_CLASS_TIMEOUT           -5 //!< outstanding request timed out
  100. #define SNMP_CLASS_ASYNC_RESPONSE    -6 //!< received response for outstd request
  101. #define SNMP_CLASS_NOTIFICATION      -7 //!< received notification (trap/inform)
  102. #define SNMP_CLASS_SESSION_DESTROYED -8 //!< snmp::destroyed with oustanding reqs pending
  103. // Snmp Class:
  104. #define SNMP_CLASS_INVALID           -10 //!< snmp::mf called on invalid instance
  105. #define SNMP_CLASS_INVALID_PDU       -11 //!< invalid pdu passed to mf
  106. #define SNMP_CLASS_INVALID_TARGET    -12 //!< invalid target passed to mf
  107. #define SNMP_CLASS_INVALID_CALLBACK  -13 //!< invalid callback to mf
  108. #define SNMP_CLASS_INVALID_REQID     -14 //!< invalid request id to cancel
  109. #define SNMP_CLASS_INVALID_NOTIFYID  -15 //!< missing trap/inform oid
  110. #define SNMP_CLASS_INVALID_OPERATION -16 //!< snmp operation not allowed for specified target
  111. #define SNMP_CLASS_INVALID_OID      -17 //!< invalid oid passed to mf
  112. #define SNMP_CLASS_INVALID_ADDRESS   -18 //!< invalid address passed to mf
  113. #define SNMP_CLASS_ERR_STATUS_SET    -19 //!< agent returned response pdu with error_status set
  114. // Transport Errors:
  115. #define SNMP_CLASS_TL_UNSUPPORTED    -20 //!< transport unsupported
  116. #define SNMP_CLASS_TL_IN_USE         -21 //!< transport in use
  117. #define SNMP_CLASS_TL_FAILED         -22 //!< transport operation failed
  118. #define SNMP_CLASS_TL_ACCESS_DENIED  -23 //!< transport missing rights
  119. // extras
  120. #define SNMP_CLASS_SHUTDOWN          -24 //!< used for back door shutdown
  121. // ASN.1 parse errors
  122. #define SNMP_CLASS_BADVERSION        -50 //!< unsupported version
  123. #define SNMP_CLASS_ASN1ERROR         -51 //!< used for ASN.1 parse errors
  124. //@}
  125. #define MAX_POS_ERROR                    SNMP_ERROR_INCONSIS_NAME
  126. #define MAX_NEG_ERROR                    SNMP_CLASS_SHUTDOWN
  127. #ifdef _INCLUDE_SNMP_ERR_STRINGS
  128. /**
  129.  * ASCII strings returned through Snmp::error() function.
  130.  *
  131.  * @note altering the strings in this header file will not affect the
  132.  *       return values of Snmp::error(), unless you rebuild the SNMP++
  133.  *       library from source.
  134.  */
  135. //@{
  136. static const char * pErrs[] = {
  137.   "Success",                                                  // 0
  138.   "SNMP: Response PDU Too Big",                               // 1
  139.   "SNMP: Variable does not exist",                        // 2
  140.   "SNMP: Cannot modify variable: Bad Value",                  // 3
  141.   "SNMP: Cannot modify object, Read Only",                 // 4
  142.   "SNMP: Cannot perform operation, General Error",            // 5
  143.   "SNMP: Cannot access variable, No Access",                  // 6
  144.   "SNMP: Cannot create/modify variable, Wrong Type",          // 7
  145.   "SNMP: Cannot create/set variable, Wrong Length",           // 8
  146.   "SNMP: Cannot create/set variable, Wrong Encoding",         // 9
  147.   "SNMP: Cannot create/set variable, Wrong Value",            // 10
  148.   "SNMP: Cannot create variable, Creation Not Allowed",       // 11
  149.   "SNMP: Cannot create/set variable, Inconsistent Value",     // 12
  150.   "SNMP: Cannot create/set variable, Resource Unavailable",   // 13
  151.   "SNMP: Cannot create/set variable, Commit Failed",          // 14
  152.   "SNMP: Cannot create/set variable, Undo Failed",            // 15
  153.   "SNMP: Cannot perform operation, Authorization Error",      // 16
  154.   "SNMP: Cannot create/set variable, Not Writable",           // 17
  155.   "SNMP: Cannot create variable, Inconsistent Name",          // 18
  156.   "SNMP: Unknown Error Status"                                // 19
  157. };
  158. #ifdef _SNMPv3
  159. static const char * nv3Errs[] = {
  160.   "SNMPv3: v3MP error",                 // -1400
  161.   "SNMPv3: v3MP ok",                    // -1401
  162.   "SNMPv3: Unsupported Security Model", // -1402
  163.   "SNMPv3: Message not in Time Window", // -1403
  164.   "SNMPv3: received same Message twice",// -1404
  165.   "SNMPv3: Invalid Message",            // -1405
  166.   "SNMPv3: Invalid EngineID",           // -1406
  167.   "SNMPv3: v3MP not initialized",       // -1407
  168.   "SNMPv3: Parse Error",                // -1408
  169.   "SNMPv3: Received Message with unknown MsgID",  // -1409
  170.   "SNMPv3: Message does not match known message", // -1410
  171.   "SNMPv3: Community format error",     // -1411
  172.   "SNMPv3: Unknown UserName",           //-1412
  173.   "SNMPv3: Build error",                //-1413
  174.   "SNMPv3: USM: error",                 //-1414
  175.   "SNMPv3: Unknown pdu handlers",       //-1415
  176.   "SNMPv3: Unavailable Context",        //-1416
  177.   "SNMPv3: Unknown Context",            //-1417
  178.   "SNMPv3: Report sent",                //-1418
  179.   "SNMPv3: Unknown errorcode"
  180. };
  181. static const char * pv3Errs[] = {
  182.   "SNMPv3: USM: ok",                          // 1400
  183.   "SNMPv3: USM: error",                       // 1401
  184.   "SNMPv3: USM: Configfile write error",      // 1402
  185.   "SNMPv3: USM: Unsupported SecurityLevel",   // 1403
  186.   "SNMPv3: USM: Unknown SecurityName",        // 1404
  187.   "SNMPv3: USM: Encryption error",            // 1405
  188.   "SNMPv3: USM: Decryption error",            // 1406
  189.   "SNMPv3: USM: Authentication error",        // 1407
  190.   "SNMPv3: USM: Authentication failure",      // 1408
  191.   "SNMPv3: USM: Parse error",                 // 1409
  192.   "SNMPv3: USM: Unknown EngineID",            // 1410
  193.   "SNMPv3: USM: Message not in TimeWindow",   // 1411
  194.   "SNMPv3: USM: Unsupported AuthProtocol",    // 1412
  195.   "SNMPv3: USM: Unsupported PrivProtocol",    // 1413
  196.   "SNMPv3: USM: Address error",               // 1414
  197.   "SNMPv3: USM: Could not create file",       // 1415
  198.   "SNMPv3: USM: Could not open file",         // 1416
  199.   "SNMPv3: USM: Could not rename file",       // 1417
  200.   "SNMPv3: USM: Could not delete file",       // 1418
  201.   "SNMPv3: USM: Could not write into file",   // 1419
  202.   "SNMPv3: USM: Could not read from file",    // 1420
  203.   "SNMPv3: USM: unknown errorcode"
  204. };
  205. #endif
  206. static const char * nErrs[] =
  207. {
  208.   // General:
  209.   "SNMP++: Success",                 // 0  SNMP_CLASS_SUCCESS
  210.   "SNMP++: Operation failed",        // 1  SNMP_CLASS_ERROR
  211.   "SNMP++: Resource unavailable",    // 2  SNMP_CLASS_RESOURCE_UNAVAIL
  212.   "SNMP++: Internal error",          // 3  SNMP_CLASS_INTERNAL_ERROR
  213.   "SNMP++: Unsupported function",    // 4  SNMP_CLASS_UNSUPPORTED
  214.   // Callback reasons:
  215.   "SNMP++: SNMP request timed out",  // 5  SNMP_CLASS_TIMEOUT
  216.   "SNMP++: Received SNMP Response",  // 6  SNMP_CLASS_ASYNC_RESPONSE
  217.                                      // 7  SNMP_CLASS_NOTIFICATION
  218.   "SNMP++: Received SNMP Notification (trap or inform)",
  219.                                      // 8  SNMP_CLASS_SESSION_DESTROYED
  220.   "SNMP++: Closing session with outstanding requests",
  221.   "Unknown error code",              // 9  reserved for future
  222.   // Snmp Class errors:
  223.   "SNMP++: Class not valid",           // 10 SNMP_CLASS_INVALID
  224.   "SNMP++: Invalid Pdu",               // 11 SNMP_CLASS_INVALID_PDU
  225.   "SNMP++: Invalid Target",            // 12 SNMP_CLASS_INVALID_TARGET
  226.   "SNMP++: Invalid (null) Callback Function", // 13 SNMP_CLASS_INVALID_CALLBACK
  227.   "SNMP++: Invalid Request Id",        // 14 SNMP_CLASS_INVALID_REQID
  228.   "SNMP++: Invalid Notification Id",   // 15 SNMP_CLASS_INVALID_NOTIFYID
  229.                                        // 16 SNMP_CLASS_INVALID_OPERATION
  230.   "SNMP++: SNMP Operation not supported on specified Target",
  231.   "SNMP++: Invalid Object Identifier", // 17 SNMP_CLASS_INVALID_OID
  232.   "SNMP++: Invalid Address",           // 18 SNMP_CLASS_INVALID_ADDRESS
  233.                                        // 19 SNMP_CLASS_ERR_STATUS_SET
  234.   "SNMP++: Agent indicates error in SNMP request",
  235.   // Transport Errors:
  236.   "SNMP++: Transport is not supported",  // 20 SNMP_CLASS_TL_UNSUPPORTED
  237.   "SNMP++: Transport is in use",         // 21 SNMP_CLASS_TL_IN_USE
  238.   "SNMP++: Transport operation failed",  // 22 SNMP_CLASS_TL_FAILED
  239.   "SNMP++: Transport access denied",     // 23 SNMP_CLASS_TL_ACCESS_DENIED
  240.   "SNMP++: Blocked Mode Shutdown",       // 24 SNMP_CLASS_SHUTDOWN
  241.   "Unknown error code",  // unknown error code
  242. };
  243. //@}
  244. #endif //_INCLUDE_SNMP_ERR_STRINGS
  245. #ifdef SNMP_PP_NAMESPACE
  246. } // end of namespace Snmp_pp
  247. #endif 
  248. #endif //_SNMPERRS_H