1 #include "EXTERN.h"
2 #include "perl.h"
3 #include "XSUB.h"
4 
5 #include <net-snmp/net-snmp-config.h>
6 #include <net-snmp/agent/ds_agent.h>
7 
8 
9 /* autogenerated by "gen" from const-c.inc */
10 
11 #define PERL_constant_NOTFOUND	1
12 #define PERL_constant_NOTDEF	2
13 #define PERL_constant_ISIV	3
14 #define PERL_constant_ISNO	4
15 #define PERL_constant_ISNV	5
16 #define PERL_constant_ISPV	6
17 #define PERL_constant_ISPVN	7
18 #define PERL_constant_ISSV	8
19 #define PERL_constant_ISUNDEF	9
20 #define PERL_constant_ISUV	10
21 #define PERL_constant_ISYES	11
22 
23 #ifndef NVTYPE
24 typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it.  */
25 #endif
26 #ifndef aTHX_
27 #define aTHX_ /* 5.6 or later define this for threading support.  */
28 #endif
29 #ifndef pTHX_
30 #define pTHX_ /* 5.6 or later define this for threading support.  */
31 #endif
32 
33 static int
constant_22(pTHX_ const char * name,IV * iv_return)34 constant_22 (pTHX_ const char *name, IV *iv_return) {
35   /* When generated this function returned values for the list of names given
36      here.  However, subsequent manual editing may have added or removed some.
37      NETSNMP_DS_AGENT_FLAGS NETSNMP_DS_AGENT_PORTS NETSNMP_DS_SMUX_SOCKET */
38   /* Offset 17 gives the best switch position.  */
39   switch (name[17]) {
40   case 'F':
41     if (memEQ(name, "NETSNMP_DS_AGENT_FLAGS", 22)) {
42     /*                                ^           */
43 #ifdef NETSNMP_DS_AGENT_FLAGS
44       *iv_return = NETSNMP_DS_AGENT_FLAGS;
45       return PERL_constant_ISIV;
46 #else
47       return PERL_constant_NOTDEF;
48 #endif
49     }
50     break;
51   case 'O':
52     if (memEQ(name, "NETSNMP_DS_SMUX_SOCKET", 22)) {
53     /*                                ^           */
54 #ifdef NETSNMP_DS_SMUX_SOCKET
55       *iv_return = NETSNMP_DS_SMUX_SOCKET;
56       return PERL_constant_ISIV;
57 #else
58       return PERL_constant_NOTDEF;
59 #endif
60     }
61     break;
62   case 'P':
63     if (memEQ(name, "NETSNMP_DS_AGENT_PORTS", 22)) {
64     /*                                ^           */
65 #ifdef NETSNMP_DS_AGENT_PORTS
66       *iv_return = NETSNMP_DS_AGENT_PORTS;
67       return PERL_constant_ISIV;
68 #else
69       return PERL_constant_NOTDEF;
70 #endif
71     }
72     break;
73   }
74   return PERL_constant_NOTFOUND;
75 }
76 
77 static int
constant_24(pTHX_ const char * name,IV * iv_return)78 constant_24 (pTHX_ const char *name, IV *iv_return) {
79   /* When generated this function returned values for the list of names given
80      here.  However, subsequent manual editing may have added or removed some.
81      NETSNMP_DS_AGENT_GROUPID NETSNMP_DS_AGENT_VERBOSE NETSNMP_DS_NOTIF_LOG_CTX
82      */
83   /* Offset 19 gives the best switch position.  */
84   switch (name[19]) {
85   case 'G':
86     if (memEQ(name, "NETSNMP_DS_NOTIF_LOG_CTX", 24)) {
87     /*                                  ^           */
88 #ifdef NETSNMP_DS_NOTIF_LOG_CTX
89       *iv_return = NETSNMP_DS_NOTIF_LOG_CTX;
90       return PERL_constant_ISIV;
91 #else
92       return PERL_constant_NOTDEF;
93 #endif
94     }
95     break;
96   case 'O':
97     if (memEQ(name, "NETSNMP_DS_AGENT_GROUPID", 24)) {
98     /*                                  ^           */
99 #ifdef NETSNMP_DS_AGENT_GROUPID
100       *iv_return = NETSNMP_DS_AGENT_GROUPID;
101       return PERL_constant_ISIV;
102 #else
103       return PERL_constant_NOTDEF;
104 #endif
105     }
106     break;
107   case 'R':
108     if (memEQ(name, "NETSNMP_DS_AGENT_VERBOSE", 24)) {
109     /*                                  ^           */
110 #ifdef NETSNMP_DS_AGENT_VERBOSE
111       *iv_return = NETSNMP_DS_AGENT_VERBOSE;
112       return PERL_constant_ISIV;
113 #else
114       return PERL_constant_NOTDEF;
115 #endif
116     }
117     break;
118   }
119   return PERL_constant_NOTFOUND;
120 }
121 
122 static int
constant_30(pTHX_ const char * name,IV * iv_return)123 constant_30 (pTHX_ const char *name, IV *iv_return) {
124   /* When generated this function returned values for the list of names given
125      here.  However, subsequent manual editing may have added or removed some.
126      NETSNMP_DS_AGENT_AGENTX_MASTER NETSNMP_DS_AGENT_CACHE_TIMEOUT
127      NETSNMP_DS_AGENT_LEAVE_PIDFILE NETSNMP_DS_AGENT_STRICT_DISMAN */
128   /* Offset 27 gives the best switch position.  */
129   switch (name[27]) {
130   case 'I':
131     if (memEQ(name, "NETSNMP_DS_AGENT_LEAVE_PIDFILE", 30)) {
132     /*                                          ^         */
133 #ifdef NETSNMP_DS_AGENT_LEAVE_PIDFILE
134       *iv_return = NETSNMP_DS_AGENT_LEAVE_PIDFILE;
135       return PERL_constant_ISIV;
136 #else
137       return PERL_constant_NOTDEF;
138 #endif
139     }
140     break;
141   case 'M':
142     if (memEQ(name, "NETSNMP_DS_AGENT_STRICT_DISMAN", 30)) {
143     /*                                          ^         */
144 #ifdef NETSNMP_DS_AGENT_STRICT_DISMAN
145       *iv_return = NETSNMP_DS_AGENT_STRICT_DISMAN;
146       return PERL_constant_ISIV;
147 #else
148       return PERL_constant_NOTDEF;
149 #endif
150     }
151     break;
152   case 'O':
153     if (memEQ(name, "NETSNMP_DS_AGENT_CACHE_TIMEOUT", 30)) {
154     /*                                          ^         */
155 #ifdef NETSNMP_DS_AGENT_CACHE_TIMEOUT
156       *iv_return = NETSNMP_DS_AGENT_CACHE_TIMEOUT;
157       return PERL_constant_ISIV;
158 #else
159       return PERL_constant_NOTDEF;
160 #endif
161     }
162     break;
163   case 'T':
164     if (memEQ(name, "NETSNMP_DS_AGENT_AGENTX_MASTER", 30)) {
165     /*                                          ^         */
166 #ifdef NETSNMP_DS_AGENT_AGENTX_MASTER
167       *iv_return = NETSNMP_DS_AGENT_AGENTX_MASTER;
168       return PERL_constant_ISIV;
169 #else
170       return PERL_constant_NOTDEF;
171 #endif
172     }
173     break;
174   }
175   return PERL_constant_NOTFOUND;
176 }
177 
178 static int
constant_31(pTHX_ const char * name,IV * iv_return)179 constant_31 (pTHX_ const char *name, IV *iv_return) {
180   /* When generated this function returned values for the list of names given
181      here.  However, subsequent manual editing may have added or removed some.
182      NETSNMP_DS_AGENT_AGENTX_RETRIES NETSNMP_DS_AGENT_AGENTX_TIMEOUT
183      NETSNMP_DS_AGENT_NO_ROOT_ACCESS NETSNMP_DS_AGENT_PERL_INIT_FILE */
184   /* Offset 27 gives the best switch position.  */
185   switch (name[27]) {
186   case 'C':
187     if (memEQ(name, "NETSNMP_DS_AGENT_NO_ROOT_ACCESS", 31)) {
188     /*                                          ^          */
189 #ifdef NETSNMP_DS_AGENT_NO_ROOT_ACCESS
190       *iv_return = NETSNMP_DS_AGENT_NO_ROOT_ACCESS;
191       return PERL_constant_ISIV;
192 #else
193       return PERL_constant_NOTDEF;
194 #endif
195     }
196     break;
197   case 'E':
198     if (memEQ(name, "NETSNMP_DS_AGENT_AGENTX_TIMEOUT", 31)) {
199     /*                                          ^          */
200 #ifdef NETSNMP_DS_AGENT_AGENTX_TIMEOUT
201       *iv_return = NETSNMP_DS_AGENT_AGENTX_TIMEOUT;
202       return PERL_constant_ISIV;
203 #else
204       return PERL_constant_NOTDEF;
205 #endif
206     }
207     break;
208   case 'F':
209     if (memEQ(name, "NETSNMP_DS_AGENT_PERL_INIT_FILE", 31)) {
210     /*                                          ^          */
211 #ifdef NETSNMP_DS_AGENT_PERL_INIT_FILE
212       *iv_return = NETSNMP_DS_AGENT_PERL_INIT_FILE;
213       return PERL_constant_ISIV;
214 #else
215       return PERL_constant_NOTDEF;
216 #endif
217     }
218     break;
219   case 'R':
220     if (memEQ(name, "NETSNMP_DS_AGENT_AGENTX_RETRIES", 31)) {
221     /*                                          ^          */
222 #ifdef NETSNMP_DS_AGENT_AGENTX_RETRIES
223       *iv_return = NETSNMP_DS_AGENT_AGENTX_RETRIES;
224       return PERL_constant_ISIV;
225 #else
226       return PERL_constant_NOTDEF;
227 #endif
228     }
229     break;
230   }
231   return PERL_constant_NOTFOUND;
232 }
233 
234 static int
constant_33(pTHX_ const char * name,IV * iv_return)235 constant_33 (pTHX_ const char *name, IV *iv_return) {
236   /* When generated this function returned values for the list of names given
237      here.  However, subsequent manual editing may have added or removed some.
238      NETSNMP_DS_AGENT_INTERNAL_SECNAME NETSNMP_DS_AGENT_INTERNAL_VERSION
239      NETSNMP_DS_AGENT_QUIT_IMMEDIATELY */
240   /* Offset 31 gives the best switch position.  */
241   switch (name[31]) {
242   case 'L':
243     if (memEQ(name, "NETSNMP_DS_AGENT_QUIT_IMMEDIATELY", 33)) {
244     /*                                              ^        */
245 #ifdef NETSNMP_DS_AGENT_QUIT_IMMEDIATELY
246       *iv_return = NETSNMP_DS_AGENT_QUIT_IMMEDIATELY;
247       return PERL_constant_ISIV;
248 #else
249       return PERL_constant_NOTDEF;
250 #endif
251     }
252     break;
253   case 'M':
254     if (memEQ(name, "NETSNMP_DS_AGENT_INTERNAL_SECNAME", 33)) {
255     /*                                              ^        */
256 #ifdef NETSNMP_DS_AGENT_INTERNAL_SECNAME
257       *iv_return = NETSNMP_DS_AGENT_INTERNAL_SECNAME;
258       return PERL_constant_ISIV;
259 #else
260       return PERL_constant_NOTDEF;
261 #endif
262     }
263     break;
264   case 'O':
265     if (memEQ(name, "NETSNMP_DS_AGENT_INTERNAL_VERSION", 33)) {
266     /*                                              ^        */
267 #ifdef NETSNMP_DS_AGENT_INTERNAL_VERSION
268       *iv_return = NETSNMP_DS_AGENT_INTERNAL_VERSION;
269       return PERL_constant_ISIV;
270 #else
271       return PERL_constant_NOTDEF;
272 #endif
273     }
274     break;
275   }
276   return PERL_constant_NOTFOUND;
277 }
278 
279 static int
constant(pTHX_ const char * name,STRLEN len,IV * iv_return)280 constant (pTHX_ const char *name, STRLEN len, IV *iv_return) {
281   /* Initially switch on the length of the name.  */
282   /* When generated this function returned values for the list of names given
283      in this section of perl code.  Rather than manually editing these functions
284      to add or remove constants, which would result in this comment and section
285      of code becoming inaccurate, we recommend that you edit this section of
286      code, and use it to regenerate a new set of constant functions which you
287      then use to replace the originals.
288 
289      Regenerate these constant functions by feeding this entire source file to
290      perl -x
291 
292 #!/usr/bin/perl -w
293 use ExtUtils::Constant qw (constant_types C_constant XS_constant);
294 
295 my $types = {map {($_, 1)} qw(IV)};
296 my @names = (qw(NETSNMP_DS_AGENT_AGENTX_MASTER
297 	       NETSNMP_DS_AGENT_AGENTX_PING_INTERVAL
298 	       NETSNMP_DS_AGENT_AGENTX_RETRIES NETSNMP_DS_AGENT_AGENTX_TIMEOUT
299 	       NETSNMP_DS_AGENT_CACHE_TIMEOUT NETSNMP_DS_AGENT_DISABLE_PERL
300 	       NETSNMP_DS_AGENT_DONT_LOG_TCPWRAPPERS_CONNECTS
301 	       NETSNMP_DS_AGENT_DONT_RETAIN_NOTIFICATIONS
302 	       NETSNMP_DS_AGENT_FLAGS NETSNMP_DS_AGENT_GROUPID
303 	       NETSNMP_DS_AGENT_INTERNAL_SECLEVEL
304 	       NETSNMP_DS_AGENT_INTERNAL_SECNAME
305 	       NETSNMP_DS_AGENT_INTERNAL_VERSION NETSNMP_DS_AGENT_LEAVE_PIDFILE
306 	       NETSNMP_DS_AGENT_MAX_GETBULKREPEATS
307 	       NETSNMP_DS_AGENT_MAX_GETBULKRESPONSES
308 	       NETSNMP_DS_AGENT_NO_CACHING
309 	       NETSNMP_DS_AGENT_NO_CONNECTION_WARNINGS
310 	       NETSNMP_DS_AGENT_NO_ROOT_ACCESS NETSNMP_DS_AGENT_PERL_INIT_FILE
311 	       NETSNMP_DS_AGENT_PORTS NETSNMP_DS_AGENT_PROGNAME
312 	       NETSNMP_DS_AGENT_QUIT_IMMEDIATELY NETSNMP_DS_AGENT_ROLE
313 	       NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES
314 	       NETSNMP_DS_AGENT_STRICT_DISMAN NETSNMP_DS_AGENT_USERID
315 	       NETSNMP_DS_AGENT_VERBOSE NETSNMP_DS_AGENT_X_DIR_PERM
316 	       NETSNMP_DS_AGENT_X_SOCKET NETSNMP_DS_AGENT_X_SOCK_GROUP
317 	       NETSNMP_DS_AGENT_X_SOCK_PERM NETSNMP_DS_AGENT_X_SOCK_USER
318 	       NETSNMP_DS_APP_DONT_LOG NETSNMP_DS_NOTIF_LOG_CTX
319 	       NETSNMP_DS_SMUX_SOCKET));
320 
321 print constant_types(); # macro defs
322 foreach (C_constant ("NetSNMP::agent::default_store", 'constant', 'IV', $types, undef, 3, @names) ) {
323     print $_, "\n"; # C constant subs
324 }
325 print "#### XS Section:\n";
326 print XS_constant ("NetSNMP::agent::default_store", $types);
327 __END__
328    */
329 
330   switch (len) {
331   case 21:
332     if (memEQ(name, "NETSNMP_DS_AGENT_ROLE", 21)) {
333 #ifdef NETSNMP_DS_AGENT_ROLE
334       *iv_return = NETSNMP_DS_AGENT_ROLE;
335       return PERL_constant_ISIV;
336 #else
337       return PERL_constant_NOTDEF;
338 #endif
339     }
340     break;
341   case 22:
342     return constant_22 (aTHX_ name, iv_return);
343     break;
344   case 23:
345     /* Names all of length 23.  */
346     /* NETSNMP_DS_AGENT_USERID NETSNMP_DS_APP_DONT_LOG */
347     /* Offset 18 gives the best switch position.  */
348     switch (name[18]) {
349     case 'S':
350       if (memEQ(name, "NETSNMP_DS_AGENT_USERID", 23)) {
351       /*                                 ^           */
352 #ifdef NETSNMP_DS_AGENT_USERID
353         *iv_return = NETSNMP_DS_AGENT_USERID;
354         return PERL_constant_ISIV;
355 #else
356         return PERL_constant_NOTDEF;
357 #endif
358       }
359       break;
360     case 'T':
361       if (memEQ(name, "NETSNMP_DS_APP_DONT_LOG", 23)) {
362       /*                                 ^           */
363 #ifdef NETSNMP_DS_APP_DONT_LOG
364         *iv_return = NETSNMP_DS_APP_DONT_LOG;
365         return PERL_constant_ISIV;
366 #else
367         return PERL_constant_NOTDEF;
368 #endif
369       }
370       break;
371     }
372     break;
373   case 24:
374     return constant_24 (aTHX_ name, iv_return);
375     break;
376   case 25:
377     /* Names all of length 25.  */
378     /* NETSNMP_DS_AGENT_PROGNAME NETSNMP_DS_AGENT_X_SOCKET */
379     /* Offset 19 gives the best switch position.  */
380     switch (name[19]) {
381     case 'O':
382       if (memEQ(name, "NETSNMP_DS_AGENT_PROGNAME", 25)) {
383       /*                                  ^            */
384 #ifdef NETSNMP_DS_AGENT_PROGNAME
385         *iv_return = NETSNMP_DS_AGENT_PROGNAME;
386         return PERL_constant_ISIV;
387 #else
388         return PERL_constant_NOTDEF;
389 #endif
390       }
391       break;
392     case 'S':
393       if (memEQ(name, "NETSNMP_DS_AGENT_X_SOCKET", 25)) {
394       /*                                  ^            */
395 #ifdef NETSNMP_DS_AGENT_X_SOCKET
396         *iv_return = NETSNMP_DS_AGENT_X_SOCKET;
397         return PERL_constant_ISIV;
398 #else
399         return PERL_constant_NOTDEF;
400 #endif
401       }
402       break;
403     }
404     break;
405   case 27:
406     /* Names all of length 27.  */
407     /* NETSNMP_DS_AGENT_NO_CACHING NETSNMP_DS_AGENT_X_DIR_PERM */
408     /* Offset 24 gives the best switch position.  */
409     switch (name[24]) {
410     case 'E':
411       if (memEQ(name, "NETSNMP_DS_AGENT_X_DIR_PERM", 27)) {
412       /*                                       ^         */
413 #ifdef NETSNMP_DS_AGENT_X_DIR_PERM
414         *iv_return = NETSNMP_DS_AGENT_X_DIR_PERM;
415         return PERL_constant_ISIV;
416 #else
417         return PERL_constant_NOTDEF;
418 #endif
419       }
420       break;
421     case 'I':
422       if (memEQ(name, "NETSNMP_DS_AGENT_NO_CACHING", 27)) {
423       /*                                       ^         */
424 #ifdef NETSNMP_DS_AGENT_NO_CACHING
425         *iv_return = NETSNMP_DS_AGENT_NO_CACHING;
426         return PERL_constant_ISIV;
427 #else
428         return PERL_constant_NOTDEF;
429 #endif
430       }
431       break;
432     }
433     break;
434   case 28:
435     /* Names all of length 28.  */
436     /* NETSNMP_DS_AGENT_X_SOCK_PERM NETSNMP_DS_AGENT_X_SOCK_USER */
437     /* Offset 27 gives the best switch position.  */
438     switch (name[27]) {
439     case 'M':
440       if (memEQ(name, "NETSNMP_DS_AGENT_X_SOCK_PER", 27)) {
441       /*                                          M      */
442 #ifdef NETSNMP_DS_AGENT_X_SOCK_PERM
443         *iv_return = NETSNMP_DS_AGENT_X_SOCK_PERM;
444         return PERL_constant_ISIV;
445 #else
446         return PERL_constant_NOTDEF;
447 #endif
448       }
449       break;
450     case 'R':
451       if (memEQ(name, "NETSNMP_DS_AGENT_X_SOCK_USE", 27)) {
452       /*                                          R      */
453 #ifdef NETSNMP_DS_AGENT_X_SOCK_USER
454         *iv_return = NETSNMP_DS_AGENT_X_SOCK_USER;
455         return PERL_constant_ISIV;
456 #else
457         return PERL_constant_NOTDEF;
458 #endif
459       }
460       break;
461     }
462     break;
463   case 29:
464     /* Names all of length 29.  */
465     /* NETSNMP_DS_AGENT_DISABLE_PERL NETSNMP_DS_AGENT_X_SOCK_GROUP */
466     /* Offset 21 gives the best switch position.  */
467     switch (name[21]) {
468     case 'B':
469       if (memEQ(name, "NETSNMP_DS_AGENT_DISABLE_PERL", 29)) {
470       /*                                    ^              */
471 #ifdef NETSNMP_DS_AGENT_DISABLE_PERL
472         *iv_return = NETSNMP_DS_AGENT_DISABLE_PERL;
473         return PERL_constant_ISIV;
474 #else
475         return PERL_constant_NOTDEF;
476 #endif
477       }
478       break;
479     case 'C':
480       if (memEQ(name, "NETSNMP_DS_AGENT_X_SOCK_GROUP", 29)) {
481       /*                                    ^              */
482 #ifdef NETSNMP_DS_AGENT_X_SOCK_GROUP
483         *iv_return = NETSNMP_DS_AGENT_X_SOCK_GROUP;
484         return PERL_constant_ISIV;
485 #else
486         return PERL_constant_NOTDEF;
487 #endif
488       }
489       break;
490     }
491     break;
492   case 30:
493     return constant_30 (aTHX_ name, iv_return);
494     break;
495   case 31:
496     return constant_31 (aTHX_ name, iv_return);
497     break;
498   case 33:
499     return constant_33 (aTHX_ name, iv_return);
500     break;
501   case 34:
502     if (memEQ(name, "NETSNMP_DS_AGENT_INTERNAL_SECLEVEL", 34)) {
503 #ifdef NETSNMP_DS_AGENT_INTERNAL_SECLEVEL
504       *iv_return = NETSNMP_DS_AGENT_INTERNAL_SECLEVEL;
505       return PERL_constant_ISIV;
506 #else
507       return PERL_constant_NOTDEF;
508 #endif
509     }
510     break;
511   case 35:
512     if (memEQ(name, "NETSNMP_DS_AGENT_MAX_GETBULKREPEATS", 35)) {
513 #ifdef NETSNMP_DS_AGENT_MAX_GETBULKREPEATS
514       *iv_return = NETSNMP_DS_AGENT_MAX_GETBULKREPEATS;
515       return PERL_constant_ISIV;
516 #else
517       return PERL_constant_NOTDEF;
518 #endif
519     }
520     break;
521   case 37:
522     /* Names all of length 37.  */
523     /* NETSNMP_DS_AGENT_AGENTX_PING_INTERVAL
524        NETSNMP_DS_AGENT_MAX_GETBULKRESPONSES */
525     /* Offset 26 gives the best switch position.  */
526     switch (name[26]) {
527     case 'L':
528       if (memEQ(name, "NETSNMP_DS_AGENT_MAX_GETBULKRESPONSES", 37)) {
529       /*                                         ^                 */
530 #ifdef NETSNMP_DS_AGENT_MAX_GETBULKRESPONSES
531         *iv_return = NETSNMP_DS_AGENT_MAX_GETBULKRESPONSES;
532         return PERL_constant_ISIV;
533 #else
534         return PERL_constant_NOTDEF;
535 #endif
536       }
537       break;
538     case 'N':
539       if (memEQ(name, "NETSNMP_DS_AGENT_AGENTX_PING_INTERVAL", 37)) {
540       /*                                         ^                 */
541 #ifdef NETSNMP_DS_AGENT_AGENTX_PING_INTERVAL
542         *iv_return = NETSNMP_DS_AGENT_AGENTX_PING_INTERVAL;
543         return PERL_constant_ISIV;
544 #else
545         return PERL_constant_NOTDEF;
546 #endif
547       }
548       break;
549     }
550     break;
551   case 39:
552     /* Names all of length 39.  */
553     /* NETSNMP_DS_AGENT_NO_CONNECTION_WARNINGS
554        NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES */
555     /* Offset 21 gives the best switch position.  */
556     switch (name[21]) {
557     case 'N':
558       if (memEQ(name, "NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES", 39)) {
559       /*                                    ^                        */
560 #ifdef NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES
561         *iv_return = NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES;
562         return PERL_constant_ISIV;
563 #else
564         return PERL_constant_NOTDEF;
565 #endif
566       }
567       break;
568     case 'O':
569       if (memEQ(name, "NETSNMP_DS_AGENT_NO_CONNECTION_WARNINGS", 39)) {
570       /*                                    ^                        */
571 #ifdef NETSNMP_DS_AGENT_NO_CONNECTION_WARNINGS
572         *iv_return = NETSNMP_DS_AGENT_NO_CONNECTION_WARNINGS;
573         return PERL_constant_ISIV;
574 #else
575         return PERL_constant_NOTDEF;
576 #endif
577       }
578       break;
579     }
580     break;
581   case 42:
582     if (memEQ(name, "NETSNMP_DS_AGENT_DONT_RETAIN_NOTIFICATIONS", 42)) {
583 #ifdef NETSNMP_DS_AGENT_DONT_RETAIN_NOTIFICATIONS
584       *iv_return = NETSNMP_DS_AGENT_DONT_RETAIN_NOTIFICATIONS;
585       return PERL_constant_ISIV;
586 #else
587       return PERL_constant_NOTDEF;
588 #endif
589     }
590     break;
591   case 46:
592     if (memEQ(name, "NETSNMP_DS_AGENT_DONT_LOG_TCPWRAPPERS_CONNECTS", 46)) {
593 #ifdef NETSNMP_DS_AGENT_DONT_LOG_TCPWRAPPERS_CONNECTS
594       *iv_return = NETSNMP_DS_AGENT_DONT_LOG_TCPWRAPPERS_CONNECTS;
595       return PERL_constant_ISIV;
596 #else
597       return PERL_constant_NOTDEF;
598 #endif
599     }
600     break;
601   }
602   return PERL_constant_NOTFOUND;
603 }
604 
605 
606 
607 /* autogenerated by "gen" from const-xs.inc */
608 
609 MODULE = NetSNMP::agent::default_store         PACKAGE = NetSNMP::agent::default_store
610 
611 void
612 constant(sv)
613     PREINIT:
614 #ifdef dXSTARG
615 	dXSTARG; /* Faster if we have it.  */
616 #else
617 	dTARGET;
618 #endif
619 	STRLEN		len;
620         int		type;
621 	IV		iv = 0;
622 	/* NV		nv;	Uncomment this if you need to return NVs */
623 	/* const char	*pv;	Uncomment this if you need to return PVs */
624     INPUT:
625 	SV *		sv;
626         const char *	s = SvPV(sv, len);
627     PPCODE:
628         /* Change this to constant(aTHX_ s, len, &iv, &nv);
629            if you need to return both NVs and IVs */
630 	type = constant(aTHX_ s, len, &iv);
631       /* Return 1 or 2 items. First is error message, or undef if no error.
632            Second, if present, is found value */
633         switch (type) {
634         case PERL_constant_NOTFOUND:
635           sv = sv_2mortal(newSVpvf("%s is not a valid NetSNMP::agent::default_store macro", s));
636           PUSHs(sv);
637           break;
638         case PERL_constant_NOTDEF:
639           sv = sv_2mortal(newSVpvf(
640 	    "Your vendor has not defined NetSNMP::agent::default_store macro %s, used", s));
641           PUSHs(sv);
642           break;
643         case PERL_constant_ISIV:
644           EXTEND(SP, 1);
645           PUSHs(&PL_sv_undef);
646           PUSHi(iv);
647           break;
648 	/* Uncomment this if you need to return NOs
649         case PERL_constant_ISNO:
650           EXTEND(SP, 1);
651           PUSHs(&PL_sv_undef);
652           PUSHs(&PL_sv_no);
653           break; */
654 	/* Uncomment this if you need to return NVs
655         case PERL_constant_ISNV:
656           EXTEND(SP, 1);
657           PUSHs(&PL_sv_undef);
658           PUSHn(nv);
659           break; */
660 	/* Uncomment this if you need to return PVs
661         case PERL_constant_ISPV:
662           EXTEND(SP, 1);
663           PUSHs(&PL_sv_undef);
664           PUSHp(pv, strlen(pv));
665           break; */
666 	/* Uncomment this if you need to return PVNs
667         case PERL_constant_ISPVN:
668           EXTEND(SP, 1);
669           PUSHs(&PL_sv_undef);
670           PUSHp(pv, iv);
671           break; */
672 	/* Uncomment this if you need to return SVs
673         case PERL_constant_ISSV:
674           EXTEND(SP, 1);
675           PUSHs(&PL_sv_undef);
676           PUSHs(sv);
677           break; */
678 	/* Uncomment this if you need to return UNDEFs
679         case PERL_constant_ISUNDEF:
680           break; */
681 	/* Uncomment this if you need to return UVs
682         case PERL_constant_ISUV:
683           EXTEND(SP, 1);
684           PUSHs(&PL_sv_undef);
685           PUSHu((UV)iv);
686           break; */
687 	/* Uncomment this if you need to return YESs
688         case PERL_constant_ISYES:
689           EXTEND(SP, 1);
690           PUSHs(&PL_sv_undef);
691           PUSHs(&PL_sv_yes);
692           break; */
693         default:
694           sv = sv_2mortal(newSVpvf(
695 	    "Unexpected return type %d while processing NetSNMP::agent::default_store macro %s, used",
696                type, s));
697           PUSHs(sv);
698         }
699 
700 
701 
702