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

SNMP编程

开发平台:

Visual C++

  1. /*_############################################################################
  2.   _## 
  3.   _##  config_snmp_pp.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. // $Id: config_snmp_pp.h 294 2007-05-01 23:23:04Z fock $
  30. #ifndef _CONFIG_SNMP_PP_H_
  31. #define _CONFIG_SNMP_PP_H_
  32. #define SNMP_PP_VERSION_STRING "3.2.22"
  33. #define SNMP_PP_VERSION 3
  34. #define SNMP_PP_RELEASE 2
  35. #define SNMP_PP_PATCHLEVEL 22
  36. #define _NO_SNMPv3
  37. //! The maximum size of a message that can be sent or received.
  38. #define MAX_SNMP_PACKET 4096
  39. #ifndef DLLOPT
  40. #if defined (WIN32) && defined (SNMP_PP_DLL)
  41. #ifdef SNMP_PP_EXPORTS
  42. #define DLLOPT __declspec(dllexport)
  43. #define DLLOPT_TEMPL
  44. #else
  45. #define DLLOPT __declspec(dllimport)
  46. #define DLLOPT_TEMPL extern
  47. #endif
  48. #else
  49. #define DLLOPT
  50. #define DLLOPT_TEMPL
  51. #endif
  52. #endif
  53. // define SNMP_PP_IPv6 if you want to use IPv6
  54. #if !defined WIN32 && !(defined (CPU) && CPU == PPC603)
  55. #define SNMP_PP_IPv6
  56. #endif
  57. // define SNMP_PP_NAMESPACE to enclose all library names in Snmp_pp namespace
  58. // #define SNMP_PP_NAMESPACE
  59. // define _NO_SNMPv3 here or in the Makefile if you do not want to use SNMPv3
  60. // (default is to use SNMPv3)
  61. // #define _NO_SNMPv3
  62. // If you have not disabled SNMPv3, snmp++ will use libdes
  63. // (separate package) as default.
  64. // define _USE_LIBTOMCRYPT if you want to use libtomcrypt instead
  65. // Note that _USE_OPENSSL will override libtomcrypt for SHA1, MD5, DES and AES.
  66. // #define _USE_LIBTOMCRYPT
  67. // If you define _USE_OPENSSL, snmp++ will use OpenSSL for SHA1,
  68. // MD5, DES and AES. Please note that you will have to change the Makefiles
  69. // of the examples: Add -lssl to the link command
  70. // #define _USE_OPENSSL
  71. // If you do not use SNMP++ for commercial purposes or if you
  72. // have licensed IDEA (read README.v3) you may define the following
  73. // to enable IDEA support.
  74. // #define _USE_IDEA
  75. // define _NO_THREADS here or in the Makefile if you do not want thread support
  76. // (default is to include thread support)
  77. // #define _NO_THREADS
  78. // define _NO_LOGGING if you do not want any logging output 
  79. // (increases performance drastically and minimizes memory consumption)
  80. //#define _NO_LOGGING
  81. // define _IPX_ADDRESS and/or _MAC_ADDRESS if you want to use the
  82. // classess IpxAddress/IpxSockAddress and/or MacAddress
  83. #define _IPX_ADDRESS
  84. #define _MAC_ADDRESS
  85. // define this if you want to send out broadcasts
  86. #define SNMP_BROADCAST
  87. // Some older(?) compilers need a special declaration of
  88. // template classes
  89. // #define _OLD_TEMPLATE_COLLECTION
  90. // We have inet_aton() function if not compiling with VC++ or Borland C++
  91. #ifndef _MSC_VER
  92. #ifndef __BCPLUSPLUS__
  93. #define HAVE_INET_ATON
  94. #endif
  95. #endif
  96. // If IPv6 is enabled assume that inet_pton() is available
  97. // If IPv6 and gcc then assume gethostbyname2() is available
  98. #ifdef SNMP_PP_IPv6
  99. #define HAVE_INET_PTON
  100. #ifdef __GNUC__
  101. #define HAVE_GETHOSTBYNAME2
  102. #endif
  103. #endif
  104. // can we use the reentrant version of these functions or
  105. // are the standard functions thread safe
  106. #ifdef __GNUC__
  107. #define HAVE_GETHOSTBYNAME_R
  108. #define HAVE_LOCALTIME_R
  109. #define HAVE_GETHOSTBYADDR_R
  110. #elif __DECCXX
  111. #define HAVE_REENTRANT_GETHOSTBYNAME
  112. #define HAVE_LOCALTIME_R
  113. #define HAVE_REENTRANT_GETHOSTBYADDR
  114. #elif __sun
  115. #define HAVE_GETHOSTBYNAME_R
  116. #define HAVE_LOCALTIME_R
  117. #define HAVE_GETHOSTBYADDR_R
  118. #elif __HP_aCC
  119. #define HAVE_REENTRANT_GETHOSTBYNAME
  120. #define HAVE_LOCALTIME_R
  121. #define HAVE_REENTRANT_GETHOSTBYADDR
  122. #elif _MSC_VER
  123. #define HAVE_REENTRANT_GETHOSTBYNAME
  124. #define HAVE_REENTRANT_LOCALTIME
  125. #define HAVE_REENTRANT_GETHOSTBYADDR
  126. #elif _AIX
  127. #define HAVE_REENTRANT_GETHOSTBYNAME
  128. #define HAVE_LOCALTIME_R
  129. #define HAVE_REENTRANT_GETHOSTBYADDR
  130. #endif
  131. // Enable 3DES Privacy
  132. // #define _USE_3DES_EDE
  133. // Define a unsigned 64 bit integer:
  134. #ifdef WIN32
  135. #include <windows.h>
  136. #include <winsock.h>
  137. #ifdef __BCPLUSPLUS__
  138. typedef unsigned __int64 pp_uint64;
  139. #else
  140. typedef ULONGLONG pp_uint64;
  141. #endif
  142. #else // not WIN32
  143. typedef unsigned long long pp_uint64;
  144. #endif
  145. // Define a type used for sockets
  146. #ifdef _MSC_VER
  147.     #include <winsock.h>
  148.     typedef SOCKET SnmpSocket;
  149. #else
  150.     typedef int SnmpSocket;
  151. #endif
  152. ///////////////////////////////////////////////////////////////////////
  153. // Changes below this line should not be necessary
  154. ///////////////////////////////////////////////////////////////////////
  155. // Make use of mutable keyword
  156. //#define SNMP_PP_MUTABLE mutable
  157. #define SNMP_PP_MUTABLE
  158. #define SAFE_INT_CAST(expr)  ((int)(expr))
  159. #define SAFE_UINT_CAST(expr) ((unsigned int)(expr))
  160. // Safe until 32 bit second counter wraps to zero (time functions)
  161. #define SAFE_LONG_CAST(expr)  ((long)(expr))
  162. #define SAFE_ULONG_CAST(expr) ((unsigned long)(expr))
  163. #ifndef _NO_THREADS
  164. #ifndef HAVE_REENTRANT_LOCALTIME
  165. #ifndef HAVE_LOCALTIME_R
  166. // If you see this warning, and your system has a reentrant localtime
  167. // or localtime_r function report your compiler, OS,... to the authors
  168. // of this library, so that these settings can be changed
  169. #warning Threads_defined_but_no_reentrant_LOCALTIME_function
  170. #endif
  171. #endif
  172. #ifndef HAVE_GETHOSTBYADDR_R
  173. #ifndef HAVE_REENTRANT_GETHOSTBYADDR
  174. // If you see this warning, and your system has a reentrant localtime
  175. // or localtime_r function report your compiler, OS,... to the authors
  176. // of this library, so that these settings can be changed
  177. #warning Threads_defined_but_no_reentrant_GETHOSTBYADDR_function
  178. #endif
  179. #endif
  180. #ifndef HAVE_GETHOSTBYNAME_R
  181. #ifndef HAVE_REENTRANT_GETHOSTBYNAME
  182. // If you see this warning, and your system has a reentrant localtime
  183. // or localtime_r function report your compiler, OS,... to the authors
  184. // of this library, so that these settings can be changed
  185. #warning Threads_defined_but_no_reentrant_GETHOSTBYNAME_function
  186. #endif
  187. #endif
  188. #endif // _NO_THREADS
  189. #ifndef _NO_SNMPv3
  190. #ifndef _SNMPv3
  191. #define _SNMPv3
  192. #endif
  193. #endif
  194. #ifndef _NO_THREADS
  195. #ifdef WIN32
  196. #ifndef _THREADS
  197. #define _WIN32THREADS
  198. #define VC_EXTRALEAN
  199. #define _THREADS
  200. #endif
  201. #else  // !WIN32
  202. #ifndef _THREADS
  203. #define _THREADS
  204. #endif
  205. #ifndef POSIX_THREADS
  206. #ifdef __unix
  207. #define POSIX_THREADS
  208. #endif
  209. #endif
  210. #endif // WIN32
  211. #endif // !_NO_THREADS
  212. #endif // _CONFIG_SNMP_PP_H_