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
00031
00032
00033
00034
00035 #define NETSNMP_CALLBACK_HIGHEST_PRIORITY -1024
00036 #define NETSNMP_CALLBACK_DEFAULT_PRIORITY 0
00037 #define NETSNMP_CALLBACK_LOWEST_PRIORITY 1024
00038
00039 typedef int (SNMPCallback) (int majorID, int minorID,
00040 void *serverarg, void *clientarg);
00041
00042 struct snmp_gen_callback {
00043 SNMPCallback *sc_callback;
00044 void *sc_client_arg;
00045 int priority;
00046 struct snmp_gen_callback *next;
00047 };
00048
00049
00050
00051
00052 void init_callbacks(void);
00053
00054 int netsnmp_register_callback(int major, int minor,
00055 SNMPCallback * new_callback,
00056 void *arg, int priority);
00057 int snmp_register_callback(int major, int minor,
00058 SNMPCallback * new_callback,
00059 void *arg);
00060 int snmp_call_callbacks(int major, int minor,
00061 void *caller_arg);
00062 int snmp_callback_available(int major, int minor);
00063 int snmp_count_callbacks(int major, int minor);
00064 int snmp_unregister_callback(int major, int minor,
00065 SNMPCallback * new_callback,
00066 void *arg, int matchargs);
00067 void clear_callback (void);
00068 int netsnmp_callback_clear_client_arg(void *, int i, int j);
00069
00070 struct snmp_gen_callback *snmp_callback_list(int major, int minor);
00071
00072 #ifdef __cplusplus
00073 }
00074 #endif
00075 #endif