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 SNMP_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
00066
00067 #ifdef __cplusplus
00068 }
00069 #endif
00070 #endif