# BRCM_VERSION=3
[bcm963xx.git] / userapps / opensource / net-snmp / perl / default_store / default_store.pm
1 package NetSNMP::default_store;
2
3 use strict;
4 use Carp;
5
6 require Exporter;
7 require DynaLoader;
8 use AutoLoader;
9
10 use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK @EXPORT $VERSION $AUTOLOAD);
11
12 @ISA = qw(Exporter DynaLoader);
13
14 # Items to export into callers namespace by default. Note: do not export
15 # names by default without a very good reason. Use EXPORT_OK instead.
16 # Do not simply export all your public functions/methods/constants.
17
18 # This allows declaration       use NetSNMP::default_store ':all';
19 # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
20 # will save memory.
21 %EXPORT_TAGS = ( 'all' => [ qw(
22                                    NETSNMP_DS_MAX_IDS
23                                    NETSNMP_DS_MAX_SUBIDS
24                                    NETSNMP_DS_LIBRARY_ID
25                                    NETSNMP_DS_APPLICATION_ID
26                                    NETSNMP_DS_TOKEN_ID
27                                    NETSNMP_DS_LIB_MIB_ERRORS
28                                    NETSNMP_DS_LIB_SAVE_MIB_DESCRS
29                                    NETSNMP_DS_LIB_MIB_COMMENT_TERM
30                                    NETSNMP_DS_LIB_MIB_PARSE_LABEL
31                                    NETSNMP_DS_LIB_DUMP_PACKET
32                                    NETSNMP_DS_LIB_LOG_TIMESTAMP
33                                    NETSNMP_DS_LIB_DONT_READ_CONFIGS
34                                    NETSNMP_DS_LIB_MIB_REPLACE
35                                    NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM
36                                    NETSNMP_DS_LIB_PRINT_NUMERIC_OIDS
37                                    NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS
38                                    NETSNMP_DS_LIB_ALARM_DONT_USE_SIG
39                                    NETSNMP_DS_LIB_PRINT_FULL_OID
40                                    NETSNMP_DS_LIB_QUICK_PRINT
41                                    NETSNMP_DS_LIB_RANDOM_ACCESS
42                                    NETSNMP_DS_LIB_REGEX_ACCESS
43                                    NETSNMP_DS_LIB_DONT_CHECK_RANGE
44                                    NETSNMP_DS_LIB_NO_TOKEN_WARNINGS
45                                    NETSNMP_DS_LIB_NUMERIC_TIMETICKS
46                                    NETSNMP_DS_LIB_ESCAPE_QUOTES
47                                    NETSNMP_DS_LIB_REVERSE_ENCODE
48                                    NETSNMP_DS_LIB_PRINT_BARE_VALUE
49                                    NETSNMP_DS_LIB_EXTENDED_INDEX
50                                    NETSNMP_DS_LIB_PRINT_HEX_TEXT
51                                    NETSNMP_DS_LIB_PRINT_UCD_STYLE_OID
52                                    NETSNMP_DS_LIB_READ_UCD_STYLE_OID
53                                    NETSNMP_DS_LIB_HAVE_READ_PREMIB_CONFIG
54                                    NETSNMP_DS_LIB_HAVE_READ_CONFIG
55                                    NETSNMP_DS_LIB_QUICKE_PRINT
56                                    NETSNMP_DS_LIB_MIB_WARNINGS
57                                    NETSNMP_DS_LIB_SECLEVEL
58                                    NETSNMP_DS_LIB_SNMPVERSION
59                                    NETSNMP_DS_LIB_DEFAULT_PORT
60                                    NETSNMP_DS_LIB_OID_OUTPUT_FORMAT
61                                    NETSNMP_DS_SNMP_VERSION_1
62                                    NETSNMP_DS_SNMP_VERSION_2c
63                                    NETSNMP_DS_SNMP_VERSION_3
64                                    NETSNMP_DS_LIB_SECNAME
65                                    NETSNMP_DS_LIB_CONTEXT
66                                    NETSNMP_DS_LIB_PASSPHRASE
67                                    NETSNMP_DS_LIB_AUTHPASSPHRASE
68                                    NETSNMP_DS_LIB_PRIVPASSPHRASE
69                                    NETSNMP_DS_LIB_OPTIONALCONFIG
70                                    NETSNMP_DS_LIB_APPTYPE
71                                    NETSNMP_DS_LIB_COMMUNITY
72                                    NETSNMP_DS_LIB_PERSISTENT_DIR
73                                    NETSNMP_DS_LIB_CONFIGURATION_DIR
74                                    NETSNMP_DS_LIB_SECMODEL
75                                    NETSNMP_DS_LIB_MIBDIRS
76         netsnmp_ds_get_boolean
77         netsnmp_ds_get_int
78         netsnmp_ds_get_string
79         netsnmp_ds_get_void
80         netsnmp_ds_register_config
81         netsnmp_ds_register_premib
82         netsnmp_ds_set_boolean
83         netsnmp_ds_set_int
84         netsnmp_ds_set_string
85         netsnmp_ds_set_void
86         netsnmp_ds_shutdown
87         netsnmp_ds_toggle_boolean
88 ) ] );
89
90 @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
91
92 @EXPORT = qw(
93                                    NETSNMP_DS_MAX_IDS
94                                    NETSNMP_DS_MAX_SUBIDS
95                                    NETSNMP_DS_LIBRARY_ID
96                                    NETSNMP_DS_APPLICATION_ID
97                                    NETSNMP_DS_TOKEN_ID
98                                    NETSNMP_DS_LIB_MIB_ERRORS
99                                    NETSNMP_DS_LIB_SAVE_MIB_DESCRS
100                                    NETSNMP_DS_LIB_MIB_COMMENT_TERM
101                                    NETSNMP_DS_LIB_MIB_PARSE_LABEL
102                                    NETSNMP_DS_LIB_DUMP_PACKET
103                                    NETSNMP_DS_LIB_LOG_TIMESTAMP
104                                    NETSNMP_DS_LIB_DONT_READ_CONFIGS
105                                    NETSNMP_DS_LIB_MIB_REPLACE
106                                    NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM
107                                    NETSNMP_DS_LIB_PRINT_NUMERIC_OIDS
108                                    NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS
109                                    NETSNMP_DS_LIB_ALARM_DONT_USE_SIG
110                                    NETSNMP_DS_LIB_PRINT_FULL_OID
111                                    NETSNMP_DS_LIB_QUICK_PRINT
112                                    NETSNMP_DS_LIB_RANDOM_ACCESS
113                                    NETSNMP_DS_LIB_REGEX_ACCESS
114                                    NETSNMP_DS_LIB_DONT_CHECK_RANGE
115                                    NETSNMP_DS_LIB_NO_TOKEN_WARNINGS
116                                    NETSNMP_DS_LIB_NUMERIC_TIMETICKS
117                                    NETSNMP_DS_LIB_ESCAPE_QUOTES
118                                    NETSNMP_DS_LIB_REVERSE_ENCODE
119                                    NETSNMP_DS_LIB_PRINT_BARE_VALUE
120                                    NETSNMP_DS_LIB_EXTENDED_INDEX
121                                    NETSNMP_DS_LIB_PRINT_HEX_TEXT
122                                    NETSNMP_DS_LIB_PRINT_UCD_STYLE_OID
123                                    NETSNMP_DS_LIB_READ_UCD_STYLE_OID
124                                    NETSNMP_DS_LIB_HAVE_READ_PREMIB_CONFIG
125                                    NETSNMP_DS_LIB_HAVE_READ_CONFIG
126                                    NETSNMP_DS_LIB_QUICKE_PRINT
127                                    NETSNMP_DS_LIB_MIB_WARNINGS
128                                    NETSNMP_DS_LIB_SECLEVEL
129                                    NETSNMP_DS_LIB_SNMPVERSION
130                                    NETSNMP_DS_LIB_DEFAULT_PORT
131                                    NETSNMP_DS_LIB_OID_OUTPUT_FORMAT
132                                    NETSNMP_DS_SNMP_VERSION_1
133                                    NETSNMP_DS_SNMP_VERSION_2c
134                                    NETSNMP_DS_SNMP_VERSION_3
135                                    NETSNMP_DS_LIB_SECNAME
136                                    NETSNMP_DS_LIB_CONTEXT
137                                    NETSNMP_DS_LIB_PASSPHRASE
138                                    NETSNMP_DS_LIB_AUTHPASSPHRASE
139                                    NETSNMP_DS_LIB_PRIVPASSPHRASE
140                                    NETSNMP_DS_LIB_OPTIONALCONFIG
141                                    NETSNMP_DS_LIB_APPTYPE
142                                    NETSNMP_DS_LIB_COMMUNITY
143                                    NETSNMP_DS_LIB_PERSISTENT_DIR
144                                    NETSNMP_DS_LIB_CONFIGURATION_DIR
145                                    NETSNMP_DS_LIB_SECMODEL
146                                    NETSNMP_DS_LIB_MIBDIRS
147 );
148 $VERSION = '0.01';
149
150 sub AUTOLOAD {
151     # This AUTOLOAD is used to 'autoload' constants from the constant()
152     # XS function.  If a constant is not found then control is passed
153     # to the AUTOLOAD in AutoLoader.
154
155     my $constname;
156     ($constname = $AUTOLOAD) =~ s/.*:://;
157     croak "& not defined" if $constname eq 'constant';
158     my $val = constant($constname, @_ ? $_[0] : 0);
159     if ($! != 0) {
160         if ($! =~ /Invalid/ || $!{EINVAL}) {
161             $AutoLoader::AUTOLOAD = $AUTOLOAD;
162             goto &AutoLoader::AUTOLOAD;
163         }
164         else {
165             croak "Your vendor has not defined NetSNMP::default_store macro $constname";
166         }
167     }
168     {
169         no strict 'refs';
170         # Fixed between 5.005_53 and 5.005_61
171 #       if ($] >= 5.00561) {
172 #           *$AUTOLOAD = sub () { $val };
173 #       }
174 #       else {
175             *$AUTOLOAD = sub { $val };
176 #       }
177     }
178     goto &$AUTOLOAD;
179 }
180
181 bootstrap NetSNMP::default_store $VERSION;
182
183 # Preloaded methods go here.
184
185 # Autoload methods go after =cut, and are processed by the autosplit program.
186
187 1;
188 __END__
189 # Below is stub documentation for your module. You better edit it!
190
191 =head1 NAME
192
193 NetSNMP::default_store - Perl extension for blah blah blah
194
195 =head1 SYNOPSIS
196
197   use NetSNMP::default_store;
198   $port = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, DS_LIB_DEFAULT_PORT);
199   netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, DS_LIB_DEFAULT_PORT, 161);
200
201 =head1 DESCRIPTION
202
203 This module is a wrapper around the net-snmp default store routines.
204 See the net-snmp default_store manual page for details on what the
205 various functions do and the values that can be set/retrieved.
206
207 =head2 EXPORT
208
209 None by default.
210
211 =head2 Exportable constants
212
213                                    NETSNMP_DS_MAX_IDS
214                                    NETSNMP_DS_MAX_SUBIDS
215                                    NETSNMP_DS_LIBRARY_ID
216                                    NETSNMP_DS_APPLICATION_ID
217                                    NETSNMP_DS_TOKEN_ID
218                                    NETSNMP_DS_LIB_MIB_ERRORS
219                                    NETSNMP_DS_LIB_SAVE_MIB_DESCRS
220                                    NETSNMP_DS_LIB_MIB_COMMENT_TERM
221                                    NETSNMP_DS_LIB_MIB_PARSE_LABEL
222                                    NETSNMP_DS_LIB_DUMP_PACKET
223                                    NETSNMP_DS_LIB_LOG_TIMESTAMP
224                                    NETSNMP_DS_LIB_DONT_READ_CONFIGS
225                                    NETSNMP_DS_LIB_MIB_REPLACE
226                                    NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM
227                                    NETSNMP_DS_LIB_PRINT_NUMERIC_OIDS
228                                    NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS
229                                    NETSNMP_DS_LIB_ALARM_DONT_USE_SIG
230                                    NETSNMP_DS_LIB_PRINT_FULL_OID
231                                    NETSNMP_DS_LIB_QUICK_PRINT
232                                    NETSNMP_DS_LIB_RANDOM_ACCESS
233                                    NETSNMP_DS_LIB_REGEX_ACCESS
234                                    NETSNMP_DS_LIB_DONT_CHECK_RANGE
235                                    NETSNMP_DS_LIB_NO_TOKEN_WARNINGS
236                                    NETSNMP_DS_LIB_NUMERIC_TIMETICKS
237                                    NETSNMP_DS_LIB_ESCAPE_QUOTES
238                                    NETSNMP_DS_LIB_REVERSE_ENCODE
239                                    NETSNMP_DS_LIB_PRINT_BARE_VALUE
240                                    NETSNMP_DS_LIB_EXTENDED_INDEX
241                                    NETSNMP_DS_LIB_PRINT_HEX_TEXT
242                                    NETSNMP_DS_LIB_PRINT_UCD_STYLE_OID
243                                    NETSNMP_DS_LIB_READ_UCD_STYLE_OID
244                                    NETSNMP_DS_LIB_HAVE_READ_PREMIB_CONFIG
245                                    NETSNMP_DS_LIB_HAVE_READ_CONFIG
246                                    NETSNMP_DS_LIB_QUICKE_PRINT
247                                    NETSNMP_DS_LIB_MIB_WARNINGS
248                                    NETSNMP_DS_LIB_SECLEVEL
249                                    NETSNMP_DS_LIB_SNMPVERSION
250                                    NETSNMP_DS_LIB_DEFAULT_PORT
251                                    NETSNMP_DS_LIB_OID_OUTPUT_FORMAT
252                                    NETSNMP_DS_SNMP_VERSION_1
253                                    NETSNMP_DS_SNMP_VERSION_2c
254                                    NETSNMP_DS_SNMP_VERSION_3
255                                    NETSNMP_DS_LIB_SECNAME
256                                    NETSNMP_DS_LIB_CONTEXT
257                                    NETSNMP_DS_LIB_PASSPHRASE
258                                    NETSNMP_DS_LIB_AUTHPASSPHRASE
259                                    NETSNMP_DS_LIB_PRIVPASSPHRASE
260                                    NETSNMP_DS_LIB_OPTIONALCONFIG
261                                    NETSNMP_DS_LIB_APPTYPE
262                                    NETSNMP_DS_LIB_COMMUNITY
263                                    NETSNMP_DS_LIB_PERSISTENT_DIR
264                                    NETSNMP_DS_LIB_CONFIGURATION_DIR
265                                    NETSNMP_DS_LIB_SECMODEL
266                                    NETSNMP_DS_LIB_MIBDIRS
267
268 =head2 Exportable functions
269
270   int netsnmp_ds_get_boolean(int storeid, int which)
271   int netsnmp_ds_get_int(int storeid, int which)
272   char *netsnmp_ds_get_string(int storeid, int which)
273   void *netsnmp_ds_get_void(int storeid, int which)
274   int netsnmp_ds_register_config(unsigned char type, const char *ftype, const char *token,
275                        int storeid, int which)
276   int netsnmp_ds_register_premib(unsigned char type, const char *ftype, const char *token,
277                        int storeid, int which)
278   int netsnmp_ds_set_boolean(int storeid, int which, int value)
279   int netsnmp_ds_set_int(int storeid, int which, int value)
280   int netsnmp_ds_set_string(int storeid, int which, const char *value)
281   int netsnmp_ds_set_void(int storeid, int which, void *value)
282   void netsnmp_ds_shutdown(void)
283   int netsnmp_ds_toggle_boolean(int storeid, int which)
284
285 =head1 AUTHOR
286
287 Wes Hardaker, hardaker@users.sourceforge.net
288
289 =head1 SEE ALSO
290
291 perl(1), default_store(3).
292
293 =cut