net-snmp/agent/mibgroup/util_funcs.h

98 lines
3.2 KiB
C

/*
* util_funcs.h: utilitiy functions for extensible groups.
*/
#ifndef _MIBGROUP_UTIL_FUNCS_H
#define _MIBGROUP_UTIL_FUNCS_H
config_require(util_funcs/header_generic)
config_require(util_funcs/header_simple_table)
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#include "util_funcs/header_generic.h"
#include "util_funcs/header_simple_table.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "struct.h"
typedef struct prefix_info
{
struct prefix_info *next_info;
unsigned long ipAddressPrefixOnLinkFlag;
unsigned long ipAddressPrefixAutonomousFlag;
char in6p[40];
}prefix_cbx;
#ifndef WIN32
typedef struct
{
prefix_cbx **list_head;
}netsnmp_prefix_listen_info;
#endif
int shell_command(struct extensible *);
int exec_command(struct extensible *);
struct extensible *get_exten_instance(struct extensible *, size_t);
int get_exec_output(struct extensible *);
#if defined(WIN32) && !defined(cygwin)
int get_exec_pipes(char *cmd, int *fdIn, int *fdOut, HANDLE *pid);
#else
int get_exec_pipes(char *cmd, int *fdIn, int *fdOut, pid_t *pid);
#endif
WriteMethod clear_cache;
void print_mib_oid(oid *, size_t);
void sprint_mib_oid(char *, const oid *, size_t);
int checkmib(struct variable *, oid *, size_t *, int, size_t *,
WriteMethod ** write_method, int);
char *find_field(char *, int);
int parse_miboid(const char *, oid *);
void string_append_int(char *, int);
void wait_on_exec(struct extensible *);
const char *make_tempfile(void);
prefix_cbx *net_snmp_create_prefix_info(unsigned long OnLinkFlag,
unsigned long AutonomousFlag,
char *in6ptr);
#ifndef WIN32
int net_snmp_find_prefix_info(prefix_cbx **head,
char *address,
prefix_cbx *node_to_find);
int net_snmp_update_prefix_info(prefix_cbx **head,
prefix_cbx *node_to_update);
int net_snmp_search_update_prefix_info(prefix_cbx **head,
prefix_cbx *node_to_use,
int functionality);
int net_snmp_delete_prefix_info(prefix_cbx **head,
char *address);
#endif
#define NIP6(addr) \
ntohs((addr).s6_addr16[0]), \
ntohs((addr).s6_addr16[1]), \
ntohs((addr).s6_addr16[2]), \
ntohs((addr).s6_addr16[3]), \
ntohs((addr).s6_addr16[4]), \
ntohs((addr).s6_addr16[5]), \
ntohs((addr).s6_addr16[6]), \
ntohs((addr).s6_addr16[7])
#define satosin(x) ((struct sockaddr_in *) &(x))
#define SOCKADDR(x) (satosin(x)->sin_addr.s_addr)
#include "util_funcs/MIB_STATS_CACHE_TIMEOUT.h"
typedef void *mib_table_t;
typedef int (RELOAD) (mib_table_t);
typedef int (COMPARE) (const void *, const void *);
mib_table_t Initialise_Table(int, int, RELOAD*, COMPARE*);
int Search_Table(mib_table_t, void *, int);
int Add_Entry(mib_table_t, void *);
void *Retrieve_Table_Data(mib_table_t, int *);
#ifdef __cplusplus
}
#endif
#endif /* _MIBGROUP_UTIL_FUNCS_H */