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

📄 snmp_transport.h

📁 net_snmp应用程序示例
💻 H
字号:
#ifndef _SNMP_TRANSPORT_H#define _SNMP_TRANSPORT_H#include <sys/types.h>#include <net-snmp/library/asn1.h>#ifdef __cplusplusextern          "C" {#endif/*  Some transport-type constants.  */#ifndef NETSNMP_STREAM_QUEUE_LEN#define	NETSNMP_STREAM_QUEUE_LEN	5#endif/*  Some transport-type flags.  */#define		NETSNMP_TRANSPORT_FLAG_STREAM	0x01#define		NETSNMP_TRANSPORT_FLAG_LISTEN	0x02#define		NETSNMP_TRANSPORT_FLAG_TUNNELED	0x04/*  The standard SNMP domains.  */extern oid      netsnmpUDPDomain[]; 	/*      = { 1, 3, 6, 1, 6, 1, 1 };  */extern oid      netsnmpCLNSDomain[];    /*      = { 1, 3, 6, 1, 6, 1, 2 };  */extern oid      netsnmpCONSDomain[];    /*      = { 1, 3, 6, 1, 6, 1, 3 };  */extern oid      netsnmpDDPDomain[]; 	/*      = { 1, 3, 6, 1, 6, 1, 4 };  */extern oid      netsnmpIPXDomain[]; 	/*      = { 1, 3, 6, 1, 6, 1, 5 };  */extern size_t   netsnmpUDPDomain_len;extern size_t   netsnmpCLNSDomain_len;extern size_t   netsnmpCONSDomain_len;extern size_t   netsnmpDDPDomain_len;extern size_t   netsnmpIPXDomain_len;/*  Structure which defines the transport-independent API.  */typedef struct netsnmp_transport_s {    /*  The transport domain object identifier.  */    const oid      *domain;    int             domain_length;  /*  In sub-IDs, not octets.  */    /*  Local transport address (in relevant SNMP-style encoding).  */        unsigned char  *local;    int             local_length;   /*  In octets.  */    /*  Remote transport address (in relevant SNMP-style encoding).  */    unsigned char  *remote;    int             remote_length;  /*  In octets.  */    /*  The actual socket.  */        int             sock;    /*  Flags (see #definitions above).  */    unsigned int    flags;    /*  Protocol-specific opaque data pointer.  */    void           *data;    int             data_length;    /*  Maximum size of PDU that can be sent/received by this transport.  */    size_t          msgMaxSize;    /*  Callbacks.  Arguments are:     *		     *              "this" pointer, fd, buf, size, *opaque, *opaque_length       */    int             (*f_recv)   (struct netsnmp_transport_s *, void *,				 int, void **, int *);    int             (*f_send)   (struct netsnmp_transport_s *, void *,				 int, void **, int *);    int             (*f_close)  (struct netsnmp_transport_s *);    /*  This callback is only necessary for stream-oriented transports.  */    int             (*f_accept) (struct netsnmp_transport_s *);    /*  Optional callback to format a transport address.  */    char           *(*f_fmtaddr)(struct netsnmp_transport_s *, void *,				 int);} netsnmp_transport;typedef struct netsnmp_transport_list_s {    netsnmp_transport *transport;    struct netsnmp_transport_list_s *next;} netsnmp_transport_list;typedef struct netsnmp_tdomain_s {    const oid      *name;    size_t          name_length;    const char    **prefix;    netsnmp_transport *(*f_create_from_tstring) (const char *, int);    netsnmp_transport *(*f_create_from_ostring) (const u_char *,  size_t, int);    struct netsnmp_tdomain_s *next;} netsnmp_tdomain;/*  Some utility functions.  */int netsnmp_transport_add_to_list(netsnmp_transport_list **transport_list,				  netsnmp_transport *transport);int netsnmp_transport_remove_from_list(netsnmp_transport_list **transport_list,				       netsnmp_transport *transport);/* * Return an exact (deep) copy of t, or NULL if there is a memory allocation * problem (for instance). */netsnmp_transport *netsnmp_transport_copy(netsnmp_transport *t);/*  Free an netsnmp_transport.  */void            netsnmp_transport_free(netsnmp_transport *t);/* * If the passed oid (in_oid, in_len) corresponds to a supported transport * domain, return 1; if not return 0.  If out_oid is not NULL and out_len is * not NULL, then the "internal" oid which should be used to identify this * domain (e.g. in pdu->tDomain etc.) is written to *out_oid and its length to * *out_len. */int             netsnmp_tdomain_support(const oid *in_oid, size_t in_len,					const oid **out_oid, size_t *out_len);int             netsnmp_tdomain_register(netsnmp_tdomain *domain);    int             netsnmp_tdomain_unregister(netsnmp_tdomain *domain);void            netsnmp_clear_tdomain_list(void);void            netsnmp_tdomain_init(void);netsnmp_transport *netsnmp_tdomain_transport(const char *string,					     int local,					     const char					     *default_domain);netsnmp_transport *netsnmp_tdomain_transport_oid(const oid * dom,						 size_t dom_len,						 const u_char * o,						 size_t o_len,						 int local);#ifdef __cplusplus}#endif#endif/*_SNMP_TRANSPORT_H*/

⌨️ 快捷键说明

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