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

📄 snmp_secmod.h

📁 net_snmp应用程序示例
💻 H
字号:
#ifndef SNMPSECMOD_H#define SNMPSECMOD_H#ifdef __cplusplusextern          "C" {#endif#include <net-snmp/library/snmp_transport.h>/* Locally defined security models. * (Net-SNMP enterprise number = 8072)*256 + local_num */#define NETSNMP_KSM_SECURITY_MODEL     2066432#define NETSNMP_LOCALSM_SECURITY_MODEL 2066433struct snmp_secmod_def;/* * parameter information passed to security model routines */struct snmp_secmod_outgoing_params {    int             msgProcModel;    u_char         *globalData;    size_t          globalDataLen;    int             maxMsgSize;    int             secModel;    u_char         *secEngineID;    size_t          secEngineIDLen;    char           *secName;    size_t          secNameLen;    int             secLevel;    u_char         *scopedPdu;    size_t          scopedPduLen;    void           *secStateRef;    u_char         *secParams;    size_t         *secParamsLen;    u_char        **wholeMsg;    size_t         *wholeMsgLen;    size_t         *wholeMsgOffset;    netsnmp_pdu    *pdu;        /* IN - the pdu getting encoded            */    netsnmp_session *session;   /* IN - session sending the message        */};struct snmp_secmod_incoming_params {    int             msgProcModel;       /* IN */    size_t          maxMsgSize; /* IN     - Used to calc maxSizeResponse.  */    u_char         *secParams;  /* IN     - BER encoded securityParameters. */    int             secModel;   /* IN */    int             secLevel;   /* IN     - AuthNoPriv; authPriv etc.      */    u_char         *wholeMsg;   /* IN     - Original v3 message.           */    size_t          wholeMsgLen;        /* IN     - Msg length.                    */    u_char         *secEngineID;        /* OUT    - Pointer snmpEngineID.          */    size_t         *secEngineIDLen;     /* IN/OUT - Len available; len returned.   */    /*     * NOTE: Memory provided by caller.           */    char           *secName;    /* OUT    - Pointer to securityName.       */    size_t         *secNameLen; /* IN/OUT - Len available; len returned.   */    u_char        **scopedPdu;  /* OUT    - Pointer to plaintext scopedPdu. */    size_t         *scopedPduLen;       /* IN/OUT - Len available; len returned.   */    size_t         *maxSizeResponse;    /* OUT    - Max size of Response PDU.      */    void          **secStateRef;        /* OUT    - Ref to security state.         */    netsnmp_session *sess;      /* IN     - session which got the message  */    netsnmp_pdu    *pdu;        /* IN     - the pdu getting parsed         */    u_char          msg_flags;  /* IN     - v3 Message flags.              */};/* * function pointers: *//* * free's a given security module's data; called at unregistration time  */typedef int     (SecmodSessionCallback) (netsnmp_session *);typedef int     (SecmodPduCallback) (netsnmp_pdu *);typedef int     (Secmod2PduCallback) (netsnmp_pdu *, netsnmp_pdu *);typedef int     (SecmodOutMsg) (struct snmp_secmod_outgoing_params *);typedef int     (SecmodInMsg) (struct snmp_secmod_incoming_params *);typedef void    (SecmodFreeState) (void *);typedef void    (SecmodHandleReport) (void *sessp,                                      netsnmp_transport *transport,                                      netsnmp_session *,                                      int result,                                      netsnmp_pdu *origpdu);/* * definition of a security module *//* * all of these callback functions except the encoding and decoding * routines are optional.  The rest of them are available if need.   */struct snmp_secmod_def {    /*     * session maniplation functions      */    SecmodSessionCallback *session_open;        /* called in snmp_sess_open()  */    SecmodSessionCallback *session_close;       /* called in snmp_sess_close() */    /*     * pdu manipulation routines      */    SecmodPduCallback *pdu_free;        /* called in free_pdu() */    Secmod2PduCallback *pdu_clone;      /* called in snmp_clone_pdu() */    SecmodPduCallback *pdu_timeout;     /* called when request timesout */    SecmodFreeState *pdu_free_state_ref;        /* frees pdu->securityStateRef */    /*     * de/encoding routines: mandatory      */    SecmodOutMsg   *encode_reverse;     /* encode packet back to front */    SecmodOutMsg   *encode_forward;     /* encode packet forward */    SecmodInMsg    *decode;     /* decode & validate incoming */   /*    * error and report handling    */   SecmodHandleReport *handle_report;};/* * internal list */struct snmp_secmod_list {    int             securityModel;    struct snmp_secmod_def *secDef;    struct snmp_secmod_list *next;};/* * register a security service  */int             register_sec_mod(int, const char *,                                 struct snmp_secmod_def *);/* * find a security service definition  */struct snmp_secmod_def *find_sec_mod(int);/* * register a security service  */int             unregister_sec_mod(int);        /* register a security service */void            init_secmod(void);/* * clears the sec_mod list */void            clear_sec_mod(void);#ifdef __cplusplus}#endif#endif                          /* SNMPSECMOD_H */

⌨️ 快捷键说明

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