default_store.pm
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:9k
源码类别:

SNMP编程

开发平台:

Unix_Linux

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