util_funcs.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /*
  2. * util_funcs.h: utilitiy functions for extensible groups.
  3. */
  4. #ifndef _MIBGROUP_UTIL_FUNCS_H
  5. #define _MIBGROUP_UTIL_FUNCS_H
  6. config_require(util_funcs/header_generic);
  7. config_require(util_funcs/header_simple_table);
  8. #ifdef HAVE_SYS_TYPES_H
  9. #include <sys/types.h>
  10. #endif
  11. #include "util_funcs/header_generic.h"
  12. #include "util_funcs/header_simple_table.h"
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #include "struct.h"
  17. typedef struct prefix_info
  18. {
  19. struct prefix_info *next_info;
  20. unsigned long ipAddressPrefixOnLinkFlag;
  21. unsigned long ipAddressPrefixAutonomousFlag;
  22. char in6p[40];
  23. }prefix_cbx;
  24. #ifndef WIN32
  25. typedef struct
  26. {
  27. prefix_cbx **list_head;
  28. }netsnmp_prefix_listen_info;
  29. #endif
  30. int shell_command(struct extensible *);
  31. int exec_command(struct extensible *);
  32. struct extensible *get_exten_instance(struct extensible *, size_t);
  33. int get_exec_output(struct extensible *);
  34. #if defined(WIN32) && !defined(cygwin)
  35. int get_exec_pipes(const char *cmd, int *fdIn, int *fdOut,
  36. HANDLE *pid);
  37. #else
  38. int get_exec_pipes(const char *cmd, int *fdIn, int *fdOut,
  39. pid_t *pid);
  40. #endif
  41. WriteMethod clear_cache;
  42. void print_mib_oid(oid *, size_t);
  43. void sprint_mib_oid(char *, const oid *, size_t);
  44. int checkmib(struct variable *, oid *, size_t *, int, size_t *,
  45. WriteMethod ** write_method, int);
  46. char *find_field(char *, int);
  47. int parse_miboid(const char *, oid *);
  48. void string_append_int(char *, int);
  49. void wait_on_exec(struct extensible *);
  50. const char *make_tempfile(void);
  51. prefix_cbx *net_snmp_create_prefix_info(unsigned long OnLinkFlag,
  52. unsigned long AutonomousFlag,
  53. char *in6ptr);
  54. #ifndef WIN32
  55. int net_snmp_find_prefix_info(prefix_cbx **head,
  56. char *address,
  57. prefix_cbx *node_to_find);
  58. int net_snmp_update_prefix_info(prefix_cbx **head,
  59. prefix_cbx *node_to_update);
  60. int net_snmp_search_update_prefix_info(prefix_cbx **head,
  61. prefix_cbx *node_to_use,
  62. int functionality);
  63. int net_snmp_delete_prefix_info(prefix_cbx **head,
  64. char *address);
  65. #endif
  66. struct netsnmp_linux_link_settings {
  67. uint32_t speed;
  68. uint8_t duplex;
  69. };
  70. int netsnmp_get_link_settings(struct netsnmp_linux_link_settings *nlls,
  71. int fd, const char *name);
  72. #define NIP6(addr) \
  73. ntohs((addr).s6_addr16[0]), \
  74. ntohs((addr).s6_addr16[1]), \
  75. ntohs((addr).s6_addr16[2]), \
  76. ntohs((addr).s6_addr16[3]), \
  77. ntohs((addr).s6_addr16[4]), \
  78. ntohs((addr).s6_addr16[5]), \
  79. ntohs((addr).s6_addr16[6]), \
  80. ntohs((addr).s6_addr16[7])
  81. #define satosin(x) ((struct sockaddr_in *) &(x))
  82. #define SOCKADDR(x) (satosin(x)->sin_addr.s_addr)
  83. #include "util_funcs/MIB_STATS_CACHE_TIMEOUT.h"
  84. typedef void *mib_table_t;
  85. typedef int (RELOAD) (mib_table_t);
  86. typedef int (COMPARE) (const void *, const void *);
  87. mib_table_t Initialise_Table(int, int, RELOAD*, COMPARE*);
  88. int Search_Table(mib_table_t, void *, int);
  89. int Add_Entry(mib_table_t, void *);
  90. void *Retrieve_Table_Data(mib_table_t, int *);
  91. #ifdef __cplusplus
  92. }
  93. #endif
  94. #endif /* _MIBGROUP_UTIL_FUNCS_H */