1 #ifndef _LIBSNMP_H_
2 #define _LIBSNMP_H_
3 
4 #ifdef __cplusplus
5 extern          "C" {
6 #endif
7 
8     /*
9      * Definitions for the Simple Network Management Protocol (RFC 1067).
10      *
11      */
12 /**********************************************************************
13  *
14  *           Copyright 1998 by Carnegie Mellon University
15  *
16  *                       All Rights Reserved
17  *
18  * Permission to use, copy, modify, and distribute this software and its
19  * documentation for any purpose and without fee is hereby granted,
20  * provided that the above copyright notice appear in all copies and that
21  * both that copyright notice and this permission notice appear in
22  * supporting documentation, and that the name of CMU not be
23  * used in advertising or publicity pertaining to distribution of the
24  * software without specific, written prior permission.
25  *
26  * CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
27  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
28  * CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
29  * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
30  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
31  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
32  * SOFTWARE.
33  *
34  * $Id$
35  *
36  **********************************************************************/
37 
38 #include <ucd-snmp/ucd-snmp-config.h>
39 
40 #if HAVE_STDLIB_H
41 #include <stdlib.h>
42 #endif
43 #if HAVE_UNISTD_H
44 #include <unistd.h>
45 #endif
46 #if HAVE_STRING_H
47 #include <string.h>
48 #else
49 #include <strings.h>
50 #endif
51 #include <sys/types.h>
52 #if HAVE_NETINET_IN_H
53 #include <netinet/in.h>
54 #endif
55 #if TIME_WITH_SYS_TIME
56 # include <sys/time.h>
57 # include <time.h>
58 #else
59 # if HAVE_SYS_TIME_H
60 #  include <sys/time.h>
61 # else
62 #  include <time.h>
63 # endif
64 #endif
65 #if HAVE_SYS_SELECT_H
66 #include <sys/select.h>
67 #endif
68 #include <stdio.h>
69 #include <ctype.h>
70 #if HAVE_NETDB_H
71 #include <netdb.h>
72 #endif
73 #if HAVE_ARPA_INET_H
74 #include <arpa/inet.h>
75 #endif
76 
77 #ifdef UCD_SNMP_LIBRARY
78 
79 #include <ucd-snmp/asn1.h>
80 #include <ucd-snmp/snmp_api.h>
81 #include <ucd-snmp/snmp_impl.h>
82 #include <ucd-snmp/snmp_client.h>
83 #include <ucd-snmp/mib.h>
84 #include <ucd-snmp/parse.h>
85 #include <ucd-snmp/snmp.h>
86 #include <ucd-snmp/system.h>
87 #include <ucd-snmp/int64.h>
88 #include <ucd-snmp/version.h>
89 
90 #define Version version         /* netsnmp_session member */
91 
92 #define SMI_NOSUCHOBJECT      SNMP_NOSUCHOBJECT
93 #define SMI_NOSUCHINSTANCE    SNMP_NOSUCHINSTANCE
94 #define SMI_ENDOFMIBVIEW      SNMP_ENDOFMIBVIEW
95 
96 
97 #else                           /* !UCD_SNMP_LIBRARY */
98 
99 #include <sys/types.h>
100 #ifndef WIN32
101 #include <netinet/in.h>
102 #endif
103 
104 #include <snmp/asn1.h>
105 #include <snmp/snmp_error.h>
106 #include <snmp/mibii.h>
107 #include <snmp/snmp_extra.h>
108 #include <snmp/snmp_dump.h>
109 
110 #include <snmp/snmp_session.h>
111 
112 #include <snmp/snmp_vars.h>
113 #include <snmp/snmp_pdu.h>
114 #include <snmp/snmp_msg.h>
115 
116 #include <snmp/snmp_coexist.h>
117 #include <snmp/version.h>
118 #include <snmp/snmp_api_error.h>
119 #include <snmp/mini-client.h>
120 
121 #include <snmp/snmp_impl.h>
122 #include <snmp/snmp_api.h>
123 #include <snmp/snmp_client.h>
124 #include <snmp/snmp-internal.h>
125 #include <snmp/mib.h>
126 #include <snmp/parse.h>
127 #include <snmp/snmp_compat.h>
128 
129     /*
130      * Load UC-Davis differential
131      */
132 
133 #define SNMP_MSG_GET GET_REQ_MSG
134 #define SNMP_MSG_GETNEXT GETNEXT_REQ_MSG
135 #define SNMP_MSG_RESPONSE GET_RSP_MSG
136 #ifndef NETSNMP_NO_WRITE_SUPPORT
137 #define SNMP_MSG_SET SET_REQ_MSG
138 #endif /* !NETSNMP_NO_WRITE_SUPPORT */
139 #define SNMP_MSG_TRAP TRP_REQ_MSG
140 #define SNMP_MSG_GETBULK    (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x5)
141 #define SNMP_MSG_INFORM     (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x6)
142 #define SNMP_MSG_TRAP2      (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x7)
143 #define SNMP_MSG_REPORT     (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x8)
144 #define SNMP_NOSUCHOBJECT    SMI_NOSUCHOBJECT
145 #define SNMP_NOSUCHINSTANCE  SMI_NOSUCHINSTANCE
146 #define SNMP_ENDOFMIBVIEW    SMI_ENDOFMIBVIEW
147 
148 #define ASN_IPADDRESS   (ASN_APPLICATION | 0)
149 #define ASN_UNSIGNED    (ASN_APPLICATION | 2)   /* RFC 1902 - same as GAUGE */
150 #define ASN_TIMETICKS   (ASN_APPLICATION | 3)
151 
152 #define snmp_perror(X) perror(X)
153 #define snmp_set_dump_packet(X)
154 #define snmp_set_quick_print(X)
155 #define snmp_set_do_debugging(X)
156 #define snmp_set_full_objid(X)
157 #define snmp_set_suffix_only(X)
158 
159 #define VersionInfo snmp_Version
160 #define get_node read_objid
161 #define version Version         /* netsnmp_session member */
162 
163 #define SNMP_VERSION_2c SNMP_VERSION_2
164 #define SNMP_VERSION_2p 129
165 
166 #define SOCK_STARTUP winsock_startup()
167 #define SOCK_CLEANUP winsock_cleanup()
168 
169 #endif                          /* !UCD_SNMP_LIBRARY */
170 
171 #ifdef __cplusplus
172 }
173 #endif
174 #endif                          /* _LIBSNMP_H_ */
175