AgentX++  2.0.5
agentx++.h
Go to the documentation of this file.
1 /*_############################################################################
2  _##
3  _## agentx++.h.in
4  _##
5  _##
6  _## AgentX++ 2
7  _## -------------------------------------
8  _## Copyright (C) 2000-2013 - Frank Fock
9  _##
10  _## Use of this software is subject to the license agreement you received
11  _## with this software and which can be downloaded from
12  _## http://www.agentpp.com
13  _##
14  _## This is licensed software and may not be used in a commercial
15  _## environment, except for evaluation purposes, unless a valid
16  _## license has been purchased.
17  _##
18  _##########################################################################*/
19 
20 #ifndef _agentxpp_h_
21 #define _agentxpp_h_
22 
23 #define AGENTXPP_VERSION_STRING "2.0.5"
24 #define AGENTXPP_VERSION @AGENT_PP_MAJOR_VERSION@
25 #define AGENTXPP_RELEASE @AGENT_PP_MINOR_VERSION@
26 #define AGENTXPP_PATCHLEVEL @AGENT_PP_MICRO_VERSION@
27 
28 #include <sys/stat.h>
29 #include <agent_pp/agent++.h>
30 #include <agent_pp/snmp_pp_ext.h>
31 
32 #ifndef AGENTPP_USE_THREAD_POOL
33 #error AGENTPP_USE_THREAD_POOL must be defined in agent++.h of AGENT++ >= v3.5c
34 #endif
35 
36 #define AGENTX_OK 0
37 #define AGENTX_OPEN_PDU 1
38 #define AGENTX_CLOSE_PDU 2
39 #define AGENTX_REGISTER_PDU 3
40 #define AGENTX_UNREGISTER_PDU 4
41 #define AGENTX_GET_PDU 5
42 #define AGENTX_GETNEXT_PDU 6
43 #define AGENTX_GETBULK_PDU 7
44 #define AGENTX_TESTSET_PDU 8
45 #define AGENTX_COMMITSET_PDU 9
46 #define AGENTX_UNDOSET_PDU 10
47 #define AGENTX_CLEANUPSET_PDU 11
48 #define AGENTX_NOTIFY_PDU 12
49 #define AGENTX_PING_PDU 13
50 #define AGENTX_INDEXALLOCATE_PDU 14
51 #define AGENTX_INDEXDEALLOCATE_PDU 15
52 #define AGENTX_ADDAGENTCAPS_PDU 16
53 #define AGENTX_REMOVEAGENTCAPS_PDU 17
54 #define AGENTX_RESPONSE_PDU 18
55 
56 #define AGENTX_REASON_OTHER 1
57 #define AGENTX_REASON_PARSE_ERROR 2
58 #define AGENTX_REASON_PROTOCOL_ERROR 3
59 #define AGENTX_REASON_TIMEOUTS 4
60 #define AGENTX_REASON_SHUTDOWN 5
61 #define AGENTX_REASON_BY_MANAGER 6
62 
63 #define AGENTX_OPEN_FAILED 256
64 #define AGENTX_NOT_OPEN 257
65 #define AGENTX_INDEX_WRONG_TYPE 258
66 #define AGENTX_INDEX_ALREADY_ALLOCATED 259
67 #define AGENTX_INDEX_NONE_AVAILABLE 260
68 #define AGENTX_INDEX_NOT_ALLOCATED 261
69 #define AGENTX_UNSUPPORTED_CONTEXT 262
70 #define AGENTX_DUPLICATE_REGISTRATION 263
71 #define AGENTX_UNKNOWN_REGISTRATION 264
72 #define AGENTX_UNKNOWN_AGENTCAPS 265
73 #define AGENTX_PARSE_ERROR 266
74 #define AGENTX_REQUEST_DENIED 267
75 #define AGENTX_PROCESSING_ERROR 268
76 
77 /* General errors */
78 
79 #define AGENTX_SUCCESS 0
80 #define AGENTX_ERROR -1
81 #define AGENTX_MISSING_VB -2
82 #define AGENTX_PDU_NOT_INITALIZED -3
83 #define AGENTX_SHORT_PDU -4
84 #define AGENTX_DISCONNECT -5
85 #define AGENTX_BADF -6
86 #define AGENTX_EOF -7
87 #define AGENTX_INC_PAYLOAD -8
88 #define AGENTX_INC_HEADER -9
89 #define AGENTX_BADVER -10
90 #define AGENTX_TIMEOUT -11
91 
92 
93 /* User errors */
94 #define AGENTX_NOREG -40
95 #define AGENTX_DUPMAP -41
96 
97 
98 #define AGENTX_INT_SIZE 4
99 #define AGENTX_SHORT_SIZE 2
100 
101 #define AGENTX_INSTANCE_REGISTRATION 0x01
102 #define AGENTX_NEW_INDEX 0x02
103 #define AGENTX_ANY_INDEX 0x04
104 #define AGENTX_NON_DEFAULT_CONTEXT 0x08
105 #define AGENTX_NETWORK_BYTE_ORDER 0x10
106 
107 #define AGENTX_HEADER_LEN 20
108 
109 #ifndef AGENTX_USOCK_PERM
110 #define AGENTX_USOCK_PERM S_IRWXU
111 #endif
112 #ifndef AGENTX_USOCK_LOC
113 #define AGENTX_USOCK_LOC "/var/agentx"
114 #endif
115 #ifndef AGENTX_SVC_PORT
116 #define AGENTX_SVC_PORT 705
117 #endif
118 
119 #define AGENTX_DEFAULT_TIMEOUT 5
120 #define AGENTX_MAX_TIMEOUTS 3
121 #define AGENTX_DEFAULT_PRIORITY 127
122 
123 #define SNMP_TRAP_OID "1.3.6.1.6.3.1.1.4.1.0"
124 #define SNMP_SYSUPTIME_OID "1.3.6.1.2.1.1.3.0"
125 
126 #define TRANSPORT_DOMAIN_LOCAL "1.3.6.1.2.1.100.1.13"
127 #define TRANSPORT_DOMAIN_TCP_IPv4 "1.3.6.1.2.1.100.1.5"
128 #define TRANSPORT_DOMAIN_TCP_IPv6 "1.3.6.1.2.1.100.1.6"
129 
130 #define AX_USE_UNIX_SOCKET 1
131 #define AX_USE_TCP_SOCKET 2
132 
133 // Timeout set requests to (1) avoid deadlocks or (2) if master agent
134 // does not properly implement SET request processing
135 #define AGENTX_SUBAGENT_TIMEOUT_SET_REQUESTS 1
136 
137 // Set this to 1 if the AgentX++ master agent should talk to
138 // NET-SNMP 4.2.1 (this subagent handles GETBULK with more
139 // than one repetition incorrectly)
140 #define MAX_AGENTX_REPETITIONS 100
141 
142 // If defined NET_SNMP_WORKAROUNDS activates workarounds for
143 // NET-SNMP 5.1 sub-agent bugs
144 #define NET_SNMP_WORKAROUNDS 1
145 
146 #ifndef AGENTXPP_DECL
147  #if defined (WIN32) && defined (AGENTX_PP_DLL)
148  #ifdef AGENTX_PP_EXPORTS
149  #define AGENTXPP_DECL __declspec(dllexport)
150  #define AGENTXPP_DECL_TEMPL
151  #pragma warning (disable : 4018) // signed/unsigned mismatch when exporting templates
152  #else
153  #define AGENTXPP_DECL __declspec(dllimport)
154  #define AGENTXPP_DECL_TEMPL extern
155  #pragma warning (disable : 4231) // disable warnings on extern before template instantiation
156  #endif
157  #else
158  #define AGENTXPP_DECL
159  #define AGENTXPP_DECL_TEMPL
160  #endif
161 #endif
162 
163 #ifdef __APPLE__
164 #define AGENTXPP_DECL_TEMPL_LIST_AGENTXPEER
165 #define AGENTXPP_DECL_TEMPL_LIST_THREAD
166 #define AGENTXPP_DECL_TEMPL_LIST_AGENTXREGENTRY
167 #define AGENTXPP_DECL_TEMPL_LIST_AGENTXINDEXDB
168 #define AGENTXPP_DECL_TEMPL_LIST_AGENTXSEARCHRANGE
169 #define AGENTXPP_DECL_TEMPL_LIST_AGENTXPDU
170 #define AGENTXPP_DECL_TEMPL_LISTCURSOR_AGENTXPDU
171 #define AGENTXPP_DECL_TEMPL_ORDEREDLIST_AGENTXPDU
172 #define AGENTXPP_DECL_TEMPL_ORDEREDLISTCURSOR_AGENTXPDU
173 #define AGENTXPP_DECL_TEMPL_LIST_VBX
174 #define AGENTXPP_DECL_TEMPL_LIST_AGENTXSESSION
175 #define AGENTXPP_DECL_TEMPL_LIST_AGENTXPENDINGMESSAGE
176 #endif
177 
178 #include <agentx_pp/agentx.h>
179 
180 #endif // _agentxpp_h_