net-snmp
5.4.1
|
00001 #ifndef _SNMPCALLBACKDOMAIN_H 00002 #define _SNMPCALLBACKDOMAIN_H 00003 00004 #ifndef NET_SNMP_CONFIG_H 00005 #error "Please include <netsnmp/net-snmp-config.h> before this file" 00006 #endif 00007 00008 #ifdef __cplusplus 00009 extern "C" { 00010 #endif 00011 00012 #ifdef NETSNMP_TRANSPORT_CALLBACK_DOMAIN 00013 00014 #include <net-snmp/library/snmp_transport.h> 00015 00016 typedef struct netsnmp_callback_pass_s { 00017 int return_transport_num; 00018 netsnmp_pdu *pdu; 00019 struct netsnmp_callback_pass_s *next; 00020 } netsnmp_callback_pass; 00021 00022 typedef struct netsnmp_callback_info_s { 00023 int linkedto; 00024 void *parent_data; 00025 netsnmp_callback_pass *data; 00026 int callback_num; 00027 int pipefds[2]; 00028 } netsnmp_callback_info; 00029 00030 netsnmp_transport *netsnmp_callback_transport(int); 00031 int netsnmp_callback_hook_parse(netsnmp_session * sp, 00032 netsnmp_pdu *pdu, 00033 u_char * packetptr, 00034 size_t len); 00035 int netsnmp_callback_hook_build(netsnmp_session * sp, 00036 netsnmp_pdu *pdu, 00037 u_char * ptk, size_t * len); 00038 int netsnmp_callback_check_packet(u_char * pkt, size_t len); 00039 netsnmp_pdu *netsnmp_callback_create_pdu(netsnmp_transport *transport, 00040 void *opaque, size_t olength); 00041 netsnmp_session *netsnmp_callback_open(int attach_to, 00042 int (*return_func) (int op, 00043 netsnmp_session 00044 * session, 00045 int reqid, 00046 netsnmp_pdu 00047 *pdu, 00048 void *magic), 00049 int (*fpre_parse) (netsnmp_session 00050 *, 00051 struct 00052 netsnmp_transport_s 00053 *, void *, int), 00054 int (*fpost_parse) (netsnmp_session 00055 *, 00056 netsnmp_pdu *, 00057 int)); 00058 void netsnmp_clear_callback_list(void); 00059 00060 #else 00061 00062 #define netsnmp_clear_callback_list() 00063 00064 00065 #endif /*NETSNMP_TRANSPORT_CALLBACK_DOMAIN*/ 00066 00067 #ifdef __cplusplus 00068 } 00069 #endif 00070 #endif/*_SNMPCALLBACKDOMAIN_H*/