00001
00002
00003
00004
00005 #ifndef CALLBACK_H
00006 #define CALLBACK_H
00007
00008 #ifdef __cplusplus
00009 extern "C" {
00010 #endif
00011
00012 #define MAX_CALLBACK_IDS 2
00013 #define MAX_CALLBACK_SUBIDS 16
00014
00015
00016
00017
00018 #define SNMP_CALLBACK_LIBRARY 0
00019 #define SNMP_CALLBACK_APPLICATION 1
00020
00021
00022
00023
00024 #define SNMP_CALLBACK_POST_READ_CONFIG 0
00025 #define SNMP_CALLBACK_STORE_DATA 1
00026 #define SNMP_CALLBACK_SHUTDOWN 2
00027 #define SNMP_CALLBACK_POST_PREMIB_READ_CONFIG 3
00028 #define SNMP_CALLBACK_LOGGING 4
00029 #define SNMP_CALLBACK_SESSION_INIT 5
00030 #define SNMP_CALLBACK_PRE_READ_CONFIG 7
00031 #define SNMP_CALLBACK_PRE_PREMIB_READ_CONFIG 8
00032
00033
00034
00035
00036
00037 #define NETSNMP_CALLBACK_HIGHEST_PRIORITY -1024
00038 #define NETSNMP_CALLBACK_DEFAULT_PRIORITY 0
00039 #define NETSNMP_CALLBACK_LOWEST_PRIORITY 1024
00040
00041 typedef int (SNMPCallback) (int majorID, int minorID,
00042 void *serverarg, void *clientarg);
00043
00044 struct snmp_gen_callback {
00045 SNMPCallback *sc_callback;
00046 void *sc_client_arg;
00047 int priority;
00048 struct snmp_gen_callback *next;
00049 };
00050
00051
00052
00053
00054 void init_callbacks(void);
00055
00056 int netsnmp_register_callback(int major, int minor,
00057 SNMPCallback * new_callback,
00058 void *arg, int priority);
00059 int snmp_register_callback(int major, int minor,
00060 SNMPCallback * new_callback,
00061 void *arg);
00062 int snmp_call_callbacks(int major, int minor,
00063 void *caller_arg);
00064 int snmp_callback_available(int major, int minor);
00065 int snmp_count_callbacks(int major, int minor);
00066 int snmp_unregister_callback(int major, int minor,
00067 SNMPCallback * new_callback,
00068 void *arg, int matchargs);
00069 void clear_callback (void);
00070 int netsnmp_callback_clear_client_arg(void *, int i, int j);
00071
00072 struct snmp_gen_callback *snmp_callback_list(int major, int minor);
00073
00074 #ifdef __cplusplus
00075 }
00076 #endif
00077 #endif