config_snmp_pp.h
上传用户:uncom666
上传日期:2020-03-30
资源大小:1426k
文件大小:7k
源码类别:

SNMP编程

开发平台:

Visual C++

  1. /*_############################################################################
  2.   _## 
  3.   _##  config_snmp_pp.h  
  4.   _##
  5.   _##  SNMP++v3.2.24
  6.   _##  -----------------------------------------------
  7.   _##  Copyright (c) 2001-2009 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 May 29 22:35:14 CEST 2009 
  27.   _##  
  28.   _##########################################################################*/
  29. // $Id: config_snmp_pp.h 353 2009-02-05 21:21:52Z katz $
  30. #ifndef _CONFIG_SNMP_PP_H_
  31. #define _CONFIG_SNMP_PP_H_
  32. #define SNMP_PP_VERSION_STRING "3.2.24"
  33. #define SNMP_PP_VERSION 3
  34. #define SNMP_PP_RELEASE 2
  35. #define SNMP_PP_PATCHLEVEL 24
  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. // #define SNMP_PP_IPv6
  54. // define SNMP_PP_NAMESPACE to enclose all library names in Snmp_pp namespace
  55. // #define SNMP_PP_NAMESPACE
  56. // define _NO_SNMPv3 here or in the Makefile if you do not want to use SNMPv3
  57. // (default is to use SNMPv3)
  58. // #define _NO_SNMPv3
  59. // If you have not disabled SNMPv3, snmp++ will use libdes
  60. // (separate package) as default.
  61. // define _USE_LIBTOMCRYPT if you want to use libtomcrypt instead
  62. // Note that _USE_OPENSSL will override libtomcrypt for SHA1, MD5, DES and AES.
  63. // #define _USE_LIBTOMCRYPT
  64. // If you define _USE_OPENSSL, snmp++ will use OpenSSL for SHA1,
  65. // MD5, DES and AES. Please note that you will have to change the Makefiles
  66. // of the examples: Add -lssl to the link command
  67. // #define _USE_OPENSSL
  68. // If you do not use SNMP++ for commercial purposes or if you
  69. // have licensed IDEA (read README.v3) you may define the following
  70. // to enable IDEA support. (note this is not defined by a rfc)
  71. // #define _USE_IDEA
  72. // Enable 3DES Privacy (note this is not defined by a rfc)
  73. // #define _USE_3DES_EDE
  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. // Not fully tested!
  87. //#define HAVE_POLL_SYSCALL
  88. // Some older(?) compilers need a special declaration of
  89. // template classes
  90. // #define _OLD_TEMPLATE_COLLECTION
  91. // We have inet_aton() function if not compiling with VC++ or Borland C++
  92. #ifndef _MSC_VER
  93. #ifndef __BCPLUSPLUS__
  94. #define HAVE_INET_ATON
  95. #endif
  96. #endif
  97. // If IPv6 is enabled assume that inet_pton() is available
  98. // If IPv6 and gcc then assume gethostbyname2() is available
  99. #ifdef SNMP_PP_IPv6
  100. #define HAVE_INET_PTON
  101. #ifdef __GNUC__
  102. #define HAVE_GETHOSTBYNAME2
  103. #endif
  104. #endif
  105. // can we use the reentrant version of these functions or
  106. // are the standard functions thread safe
  107. #ifdef __GNUC__
  108. #define HAVE_GETHOSTBYNAME_R
  109. #define HAVE_LOCALTIME_R
  110. #define HAVE_GETHOSTBYADDR_R
  111. #elif __DECCXX
  112. #define HAVE_REENTRANT_GETHOSTBYNAME
  113. #define HAVE_LOCALTIME_R
  114. #define HAVE_REENTRANT_GETHOSTBYADDR
  115. #elif __sun
  116. #define HAVE_GETHOSTBYNAME_R
  117. #define HAVE_LOCALTIME_R
  118. #define HAVE_GETHOSTBYADDR_R
  119. #elif __HP_aCC
  120. #define HAVE_REENTRANT_GETHOSTBYNAME
  121. #define HAVE_LOCALTIME_R
  122. #define HAVE_REENTRANT_GETHOSTBYADDR
  123. #elif _MSC_VER
  124. #define HAVE_REENTRANT_GETHOSTBYNAME
  125. #define HAVE_REENTRANT_LOCALTIME
  126. #define HAVE_REENTRANT_GETHOSTBYADDR
  127. #elif _AIX
  128. #define HAVE_REENTRANT_GETHOSTBYNAME
  129. #define HAVE_LOCALTIME_R
  130. #define HAVE_REENTRANT_GETHOSTBYADDR
  131. #endif
  132. // Define a unsigned 64 bit integer:
  133. #ifdef WIN32
  134. #ifdef SNMP_PP_IPv6
  135. #include <winsock2.h>
  136. #include <ws2tcpip.h>
  137. #else
  138. #include <windows.h>
  139. #include <winsock.h>
  140. #endif
  141. #ifdef __BCPLUSPLUS__
  142. typedef unsigned __int64 pp_uint64;
  143. #else
  144. typedef ULONGLONG pp_uint64;
  145. #endif
  146. #else // not WIN32
  147. typedef unsigned long long pp_uint64;
  148. #endif
  149. // Define a type used for sockets
  150. #ifdef _MSC_VER
  151.     typedef SOCKET SnmpSocket;
  152. #else
  153.     typedef int SnmpSocket;
  154. #endif
  155. #ifdef HAVE_POLL_SYSCALL
  156. #include <poll.h>
  157. #endif
  158. ///////////////////////////////////////////////////////////////////////
  159. // Changes below this line should not be necessary
  160. ///////////////////////////////////////////////////////////////////////
  161. // Make use of mutable keyword
  162. //#define SNMP_PP_MUTABLE mutable
  163. #define SNMP_PP_MUTABLE
  164. #define SAFE_INT_CAST(expr)  ((int)(expr))
  165. #define SAFE_UINT_CAST(expr) ((unsigned int)(expr))
  166. // Safe until 32 bit second counter wraps to zero (time functions)
  167. #define SAFE_LONG_CAST(expr)  ((long)(expr))
  168. #define SAFE_ULONG_CAST(expr) ((unsigned long)(expr))
  169. #ifndef _NO_THREADS
  170. #ifndef HAVE_REENTRANT_LOCALTIME
  171. #ifndef HAVE_LOCALTIME_R
  172. // If you see this warning, and your system has a reentrant localtime
  173. // or localtime_r function report your compiler, OS,... to the authors
  174. // of this library, so that these settings can be changed
  175. #warning Threads_defined_but_no_reentrant_LOCALTIME_function
  176. #endif
  177. #endif
  178. #ifndef HAVE_GETHOSTBYADDR_R
  179. #ifndef HAVE_REENTRANT_GETHOSTBYADDR
  180. // If you see this warning, and your system has a reentrant localtime
  181. // or localtime_r function report your compiler, OS,... to the authors
  182. // of this library, so that these settings can be changed
  183. #warning Threads_defined_but_no_reentrant_GETHOSTBYADDR_function
  184. #endif
  185. #endif
  186. #ifndef HAVE_GETHOSTBYNAME_R
  187. #ifndef HAVE_REENTRANT_GETHOSTBYNAME
  188. // If you see this warning, and your system has a reentrant localtime
  189. // or localtime_r function report your compiler, OS,... to the authors
  190. // of this library, so that these settings can be changed
  191. #warning Threads_defined_but_no_reentrant_GETHOSTBYNAME_function
  192. #endif
  193. #endif
  194. #endif // _NO_THREADS
  195. #ifndef _NO_SNMPv3
  196. #ifndef _SNMPv3
  197. #define _SNMPv3
  198. #endif
  199. #endif
  200. #ifndef _NO_THREADS
  201. #ifdef WIN32
  202. #ifndef _THREADS
  203. #define _WIN32THREADS
  204. #define VC_EXTRALEAN
  205. #define _THREADS
  206. #endif
  207. #else  // !WIN32
  208. #ifndef _THREADS
  209. #define _THREADS
  210. #endif
  211. #ifdef __APPLE__
  212. #define __unix
  213. #endif
  214. #ifndef POSIX_THREADS
  215. #ifdef __unix
  216. #define POSIX_THREADS
  217. #endif
  218. #endif
  219. #endif // WIN32
  220. #endif // !_NO_THREADS
  221. #endif // _CONFIG_SNMP_PP_H_