⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 agent_registry.h

📁 net_snmp应用程序示例
💻 H
字号:
#ifndef AGENT_REGISTRY_H#define AGENT_REGISTRY_H/***********************************************************************//* * new version2 agent handler API structures  *//***********************************************************************/#include <net-snmp/agent/snmp_agent.h>#include <net-snmp/library/fd_event_manager.h>#ifdef __cplusplusextern          "C" {#endif/***********************************************************************/    /*     * requests api definitions      *//***********************************************************************/    /*     * the structure of parameters passed to registered ACM modules      */struct view_parameters {    netsnmp_pdu    *pdu;    oid            *name;    size_t          namelen;    int             test;    int             errorcode;		/*  Do not change unless you're					    specifying an error, as it starts					    in a success state.  */    int             check_subtree;};struct register_parameters {    oid            *name;    size_t          namelen;    int             priority;    int             range_subid;    oid             range_ubound;    int             timeout;    u_char          flags;    const char     *contextName;};typedef struct subtree_context_cache_s {    char				*context_name;    struct netsnmp_subtree_s		*first_subtree;    struct subtree_context_cache_s	*next;} subtree_context_cache;void             setup_tree		  (void);void             shutdown_tree    (void);netsnmp_subtree *netsnmp_subtree_find	  (oid *, size_t, netsnmp_subtree *,					   const char *context_name);netsnmp_subtree *netsnmp_subtree_find_next(oid *, size_t, netsnmp_subtree *,					   const char *context_name);netsnmp_subtree *netsnmp_subtree_find_prev(oid *, size_t,netsnmp_subtree *,					   const char *context_name);netsnmp_subtree *netsnmp_subtree_find_first(const char *context_name);netsnmp_session *get_session_for_oid	   (oid *, size_t, 					    const char *context_name);subtree_context_cache *get_top_context_cache(void);void netsnmp_set_lookup_cache_size(int newsize);int netsnmp_get_lookup_cache_size(void);#define MIB_REGISTERED_OK		 0#define MIB_DUPLICATE_REGISTRATION	-1#define MIB_REGISTRATION_FAILED		-2#define MIB_UNREGISTERED_OK		 0#define MIB_NO_SUCH_REGISTRATION	-1#define MIB_UNREGISTRATION_FAILED	-2#define DEFAULT_MIB_PRIORITY		127int             register_mib		   (const char *, struct variable *,					    size_t, size_t, oid *, size_t);int             register_mib_priority	   (const char *, struct variable *,					    size_t, size_t, oid *, size_t,					    int);int             register_mib_range	   (const char *, struct variable *,					    size_t, size_t, oid *, size_t, 					    int, int, oid, netsnmp_session *);int		register_mib_context	   (const char *, struct variable *,					    size_t, size_t, oid *, size_t,					    int, int, oid, netsnmp_session *,					    const char *, int, int);int	netsnmp_register_mib_table_row	   (const char *, struct variable *,					    size_t, size_t, oid *, size_t, 					    int, int, netsnmp_session *,					    const char *, int, int);int		unregister_mib		   (oid *, size_t);int             unregister_mib_priority	   (oid *, size_t, int);int             unregister_mib_range	   (oid *, size_t, int, int, oid);int             unregister_mib_context	   (oid *, size_t, int, int, oid,					    const char *);void            clear_context              (void);void            unregister_mibs_by_session (netsnmp_session *);int     netsnmp_unregister_mib_table_row   (oid *mibloc, size_t mibloclen,					    int priority, int var_subid,					    oid range_ubound,					    const char *context);int             compare_tree		   (const oid *, size_t, 					    const oid *, size_t);int             in_a_view		   (oid *, size_t *, 					    netsnmp_pdu *, int);int             check_access		   (netsnmp_pdu *pdu);int             netsnmp_acm_check_subtree  (netsnmp_pdu *, oid *, size_t);void            register_mib_reattach	   (void);void            register_mib_detach	   (void);/* * REGISTER_MIB(): This macro simply loads register_mib with less pain: *  * descr:   A short description of the mib group being loaded. * var:     The variable structure to load. * vartype: The variable structure used to define it (variable[2, 4, ...]) * theoid:  An *initialized* *exact length* oid pointer. *          (sizeof(theoid) *must* return the number of elements!)  */#define REGISTER_MIB(descr, var, vartype, theoid)                      \  if (register_mib(descr, (struct variable *) var, sizeof(struct vartype), \               sizeof(var)/sizeof(struct vartype),                     \               theoid, sizeof(theoid)/sizeof(oid)) != MIB_REGISTERED_OK ) \	DEBUGMSGTL(("register_mib", "%s registration failed\n", descr));#define NUM_EXTERNAL_SIGS 32#define SIG_REGISTERED_OK		 0#define SIG_REGISTRATION_FAILED		-2#define SIG_UNREGISTERED_OK		 0extern int      external_signal_scheduled[NUM_EXTERNAL_SIGS];extern void     (*external_signal_handler[NUM_EXTERNAL_SIGS])(int);int             register_signal(int, void (*func)(int));int             unregister_signal(int);/* * internal API.  Don't use this.  Use netsnmp_register_handler instead  */struct netsnmp_handler_registration_s;int             netsnmp_register_mib(const char *, struct variable *,				     size_t, size_t, oid *, size_t,				     int, int, oid, netsnmp_session *,				     const char *, int, int,				     struct netsnmp_handler_registration_s *,				     int);#ifdef __cplusplus}#endif#endif                          /* AGENT_REGISTRY_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -