agent_read_config.c
上传用户:cxs890
上传日期:2021-05-22
资源大小:347k
文件大小:4k
源码类别:

SNMP编程

开发平台:

C/C++

  1. /*
  2.  * agent_read_config.c
  3.  */
  4. #include <config.h>
  5. #ifndef OS_VXWORKS
  6. #include <sys/types.h>
  7. #if HAVE_STDLIB_H
  8. #include <stdlib.h>
  9. #endif
  10. #if HAVE_STRING_H
  11. #include <string.h>
  12. #else
  13. #include <strings.h>
  14. #endif
  15. #include <stdio.h>
  16. #include <ctype.h>
  17. #include <errno.h>
  18. #endif
  19. #if TIME_WITH_SYS_TIME
  20. # ifdef WIN32
  21. #  include <sys/timeb.h>
  22. # else
  23. #  include <time.h>
  24. # endif
  25. # include <time.h>
  26. #else
  27. # if HAVE_SYS_TIME_H
  28. #  include <sys/time.h>
  29. # else
  30. #  include <time.h>
  31. # endif
  32. #endif
  33. #if HAVE_NETINET_IN_H
  34. #include <netinet/in.h>
  35. #endif
  36. #if HAVE_NETINET_IN_SYSTM_H
  37. #include <netinet/in_systm.h>
  38. #endif
  39. #if HAVE_NETINET_IP_H
  40. #include <netinet/ip.h>
  41. #endif
  42. #ifdef INET6
  43. #if HAVE_NETINET_IP6_H
  44. #include <netinet/ip6.h>
  45. #endif
  46. #endif
  47. #if HAVE_SYS_QUEUE_H
  48. #include <sys/queue.h>
  49. #endif
  50. #if HAVE_SYS_SOCKET_H
  51. #include <sys/socket.h>
  52. #elif HAVE_WINSOCK_H
  53. #include <ip/socket.h>
  54. #endif 
  55. #if HAVE_SYS_STREAM_H
  56. #include <sys/stream.h>
  57. #endif
  58. #if HAVE_NET_ROUTE_H
  59. #include <net/route.h>
  60. #endif
  61. #if HAVE_NETINET_IP_VAR_H
  62. #include <netinet/ip_var.h>
  63. #endif
  64. #ifdef INET6
  65. #if HAVE_NETINET6_IP6_VAR_H
  66. #include <netinet6/ip6_var.h>
  67. #endif
  68. #endif
  69. #if HAVE_NETINET_IN_PCB_H
  70. #include <netinet/in_pcb.h>
  71. #endif
  72. #if HAVE_INET_MIB2_H
  73. #include <inet/mib2.h>
  74. #endif
  75. #if HAVE_DMALLOC_H
  76. #include <dmalloc.h>
  77. #endif
  78. #include "mibgroupmibincl.h"
  79. #include "snmpusm.h"
  80. #include "mibgroup/struct.h"
  81. #include "read_config.h"
  82. #include "agent_read_config.h"
  83. #include "callback.h"
  84. #include "snmp_agent.h"
  85. #include "agent_trap.h"
  86. #include "snmpd.h"
  87. #include "system.h"
  88. #include "snmp_debug.h"
  89. #include "snmp_alarm.h"
  90. #include "default_store.h"
  91. #include "ds_agent.h"
  92. #ifdef OS_VXWORKS
  93. #include <sys/times.h>
  94. #endif
  95. #include "mib_module_includes.h"
  96. char dontReadConfigFiles;
  97. char *optconfigfile;
  98. void init_agent_read_config (const char *app)
  99. {
  100.   if ( app != NULL )
  101.       ds_set_string(DS_LIBRARY_ID, DS_LIB_APPTYPE, app);
  102.   register_app_config_handler("authtrapenable",
  103.                           snmpd_parse_config_authtrap, NULL,
  104.                           "1 | 2tt(1 = enable, 2 = disable)");
  105.   if ( ds_get_boolean(DS_APPLICATION_ID, DS_AGENT_ROLE) == MASTER_AGENT ) {
  106.       register_app_config_handler("trapsink",
  107.                           snmpd_parse_config_trapsink, snmpd_free_trapsinks,
  108.                           "host [community]");
  109.       register_app_config_handler("trap2sink",
  110.                           snmpd_parse_config_trap2sink, NULL,
  111.                           "host [community]");
  112.       register_app_config_handler("informsink",
  113.                           snmpd_parse_config_informsink, NULL,
  114.                           "host [community]");
  115.   }
  116.   register_app_config_handler("trapcommunity",
  117.                           snmpd_parse_config_trapcommunity,
  118.                           snmpd_free_trapcommunity,
  119.                           "community-string");
  120. #include "mib_module_dot_conf.h"
  121. #ifdef TESTING
  122.   print_config_handlers();
  123. #endif
  124. }
  125. void update_config(void)
  126. {
  127.   free_config();
  128.   read_configs();
  129. }
  130. void
  131. snmpd_register_config_handler(const char *token,
  132.       void (*parser) (const char *, char *),
  133.       void (*releaser) (void),
  134.       const char *help)
  135. {
  136.   DEBUGMSGTL(("snmpd_register_app_config_handler",
  137.               "registering .conf token for "%s"n", token));
  138.   register_app_config_handler(token, parser, releaser, help);
  139. }
  140. #if 0
  141. void
  142. snmpd_unregister_config_handler(const char *token)
  143. {
  144.   unregister_app_config_handler(token);
  145. }
  146. #endif
  147. /* this function is intended for use by mib-modules to store permenant
  148.    configuration information generated by sets or persistent counters */
  149. void
  150. snmpd_store_config(const char *line)
  151. {
  152.   read_app_config_store(line);
  153. }