config_snmp_pp.h
上传用户:cnryan
上传日期:2008-12-15
资源大小:260k
文件大小:7k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

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