A generic callback mechanism
[The Net-SNMP library]


マクロ定義

#define CALLBACK_NAME_LOGGING   1
#define LOCK_PER_CALLBACK_SUBID   1
#define CALLBACK_LOCK(maj, min)   ++_locks[major][minor]
#define CALLBACK_UNLOCK(maj, min)   --_locks[major][minor]
#define CALLBACK_LOCK_COUNT(maj, min)   _locks[major][minor]

関数

NETSNMP_STATIC_INLINE int _callback_lock (int major, int minor, const char *warn, int assert)
NETSNMP_STATIC_INLINE void _callback_unlock (int major, int minor)
void init_callbacks (void)
int snmp_register_callback (int major, int minor, SNMPCallback *new_callback, void *arg)
 This function registers a generic callback function.
int netsnmp_register_callback (int major, int minor, SNMPCallback *new_callback, void *arg, int priority)
int snmp_call_callbacks (int major, int minor, void *caller_arg)
 This function calls the callback function for each registered callback of type major and minor.
int snmp_count_callbacks (int major, int minor)
int snmp_callback_available (int major, int minor)
int snmp_unregister_callback (int major, int minor, SNMPCallback *target, void *arg, int matchargs)
 This function unregisters a specified callback function given a major and minor type.
int netsnmp_callback_clear_client_arg (void *ptr, int i, int j)
 find and clear client args that match ptr
void clear_callback (void)
snmp_gen_callbacksnmp_callback_list (int major, int minor)

関数

int netsnmp_callback_clear_client_arg ( void *  ptr,
int  i,
int  j 
)

find and clear client args that match ptr

引数:
ptr pointer to search for
i callback id to start at
j callback subid to start at

callback.c462 行で定義されています。

参照先 snmp_gen_callback::nextNULLsnmp_gen_callback::sc_callbacksnmp_gen_callback::sc_client_arg.

参照元 clear_callback().

int snmp_call_callbacks ( int  major,
int  minor,
void *  caller_arg 
)

This function calls the callback function for each registered callback of type major and minor.

引数:
major is the SNMP callback major type used
minor is the SNMP callback minor type used
caller_arg is a void pointer which is sent in as the callback's serverarg parameter, if needed.
戻り値:
Returns SNMPERR_GENERR if major is >= MAX_CALLBACK_IDS or minor is >= MAX_CALLBACK_SUBIDS, otherwise SNMPERR_SUCCESS is returned.
参照:
snmp_register_callback

snmp_unregister_callback

callback.c286 行で定義されています。

参照先 _callback_lock()_callback_unlock()init_callbacks()snmp_gen_callback::nextNULLsnmp_gen_callback::sc_callbacksnmp_gen_callback::sc_client_arg.

参照元 add_trap_session()check_access()in_a_view()log_handler_callback()netsnmp_acm_check_subtree()netsnmp_register_mib()netsnmp_register_mib_table_row()read_configs()read_premib_configs()snmp_shutdown()snmp_store()unregister_mibs_by_session().

int snmp_register_callback ( int  major,
int  minor,
SNMPCallback *  new_callback,
void *  arg 
)

This function registers a generic callback function.

The major and minor values are used to set the new_callback function into a global static multi-dimensional array of type struct snmp_gen_callback. The function makes sure to append this callback function at the end of the link list, snmp_gen_callback->next.

引数:
major is the SNMP callback major type used
  • SNMP_CALLBACK_LIBRARY

引数:
minor is the SNMP callback minor type used
  • SNMP_CALLBACK_POST_READ_CONFIG
  • SNMP_CALLBACK_STORE_DATA
  • SNMP_CALLBACK_SHUTDOWN
  • SNMP_CALLBACK_POST_PREMIB_READ_CONFIG
  • SNMP_CALLBACK_LOGGING
  • SNMP_CALLBACK_SESSION_INIT
new_callback is the callback function that is registered.
arg when not NULL is a void pointer used whenever new_callback function is exercised.
戻り値:
Returns SNMPERR_GENERR if major is >= MAX_CALLBACK_IDS or minor is >= MAX_CALLBACK_SUBIDS or a snmp_gen_callback pointer could not be allocated, otherwise SNMPERR_SUCCESS is returned.
  • #define MAX_CALLBACK_IDS 2
  • #define MAX_CALLBACK_SUBIDS 16
参照:
snmp_call_callbacks

snmp_unregister_callback

callback.c218 行で定義されています。

参照先 netsnmp_register_callback().

参照元 init_snmp_alarm()netsnmp_init_handler_conf()netsnmp_register_save_list().

int snmp_unregister_callback ( int  major,
int  minor,
SNMPCallback *  target,
void *  arg,
int  matchargs 
)

This function unregisters a specified callback function given a major and minor type.

Note: no bound checking on major and minor.

引数:
major is the SNMP callback major type used
minor is the SNMP callback minor type used
target is the callback function that will be unregistered.
arg is a void pointer used for comparison against the registered callback's sc_client_arg variable.
matchargs is an integer used to bypass the comparison of arg and the callback's sc_client_arg variable only when matchargs is set to 0.
戻り値:
Returns the number of callbacks that were unregistered.
参照:
snmp_register_callback

snmp_call_callbacks

set cleanup flag?

callback.c406 行で定義されています。

参照先 _callback_lock()_callback_unlock()CALLBACK_LOCK_COUNTinit_callbacks()snmp_gen_callback::nextNULLsnmp_gen_callback::sc_callbacksnmp_gen_callback::sc_client_argSNMP_FREE.


net-snmpに対してSat Sep 5 13:14:28 2009に生成されました。  doxygen 1.4.7