fptr_wlist.c File Reference

This file contains functions that check function pointers. More...

#include "config.h"
#include "util/fptr_wlist.h"
#include "util/mini_event.h"
#include "daemon/worker.h"
#include "daemon/remote.h"
#include "services/outside_network.h"
#include "services/mesh.h"
#include "services/localzone.h"
#include "services/cache/infra.h"
#include "services/cache/rrset.h"
#include "iterator/iterator.h"
#include "iterator/iter_fwd.h"
#include "validator/validator.h"
#include "validator/val_anchor.h"
#include "validator/val_nsec3.h"
#include "validator/val_sigcrypt.h"
#include "validator/val_kentry.h"
#include "validator/val_neg.h"
#include "util/data/msgreply.h"
#include "util/data/packed_rrset.h"
#include "util/storage/slabhash.h"
#include "util/storage/dnstree.h"
#include "util/locks.h"
#include "libunbound/libworker.h"
#include "libunbound/context.h"
#include "util/tube.h"

Functions

int fptr_whitelist_comm_point (comm_point_callback_t *fptr)
 Check function pointer whitelist for comm_point callback values.
int fptr_whitelist_comm_point_raw (comm_point_callback_t *fptr)
 Check function pointer whitelist for raw comm_point callback values.
int fptr_whitelist_comm_timer (void(*fptr)(void *))
 Check function pointer whitelist for comm_timer callback values.
int fptr_whitelist_comm_signal (void(*fptr)(int, void *))
 Check function pointer whitelist for comm_signal callback values.
int fptr_whitelist_event (void(*fptr)(int, short, void *))
 Check function pointer whitelist for event structure callback values.
int fptr_whitelist_pending_udp (comm_point_callback_t *fptr)
 Check function pointer whitelist for pending udp callback values.
int fptr_whitelist_pending_tcp (comm_point_callback_t *fptr)
 Check function pointer whitelist for pending tcp callback values.
int fptr_whitelist_serviced_query (comm_point_callback_t *fptr)
 Check function pointer whitelist for serviced query callback values.
int fptr_whitelist_rbtree_cmp (int(*fptr)(const void *, const void *))
 Check function pointer whitelist for rbtree cmp callback values.
int fptr_whitelist_hash_sizefunc (lruhash_sizefunc_t fptr)
 Check function pointer whitelist for lruhash sizefunc callback values.
int fptr_whitelist_hash_compfunc (lruhash_compfunc_t fptr)
 Check function pointer whitelist for lruhash compfunc callback values.
int fptr_whitelist_hash_delkeyfunc (lruhash_delkeyfunc_t fptr)
 Check function pointer whitelist for lruhash delkeyfunc callback values.
int fptr_whitelist_hash_deldatafunc (lruhash_deldatafunc_t fptr)
 Check function pointer whitelist for lruhash deldata callback values.
int fptr_whitelist_hash_markdelfunc (lruhash_markdelfunc_t fptr)
 Check function pointer whitelist for lruhash markdel callback values.
int fptr_whitelist_modenv_send_packet (int(*fptr)(ldns_buffer *pkt, struct sockaddr_storage *addr, socklen_t addrlen, int timeout, struct module_qstate *q, int use_tcp))
 Check function pointer whitelist for module_env send_packet callback values.
int fptr_whitelist_modenv_send_query (struct outbound_entry *(*fptr)(uint8_t *qname, size_t qnamelen, uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec, struct sockaddr_storage *addr, socklen_t addrlen, struct module_qstate *q))
 Check function pointer whitelist for module_env send_query callback values.
int fptr_whitelist_modenv_detach_subs (void(*fptr)(struct module_qstate *qstate))
 Check function pointer whitelist for module_env detach_subs callback values.
int fptr_whitelist_modenv_attach_sub (int(*fptr)(struct module_qstate *qstate, struct query_info *qinfo, uint16_t qflags, int prime, struct module_qstate **newq))
 Check function pointer whitelist for module_env attach_sub callback values.
int fptr_whitelist_modenv_kill_sub (void(*fptr)(struct module_qstate *newq))
 Check function pointer whitelist for module_env kill_sub callback values.
int fptr_whitelist_modenv_detect_cycle (int(*fptr)(struct module_qstate *qstate, struct query_info *qinfo, uint16_t flags, int prime))
 Check function pointer whitelist for module_env detect_cycle callback values.
int fptr_whitelist_mod_init (int(*fptr)(struct module_env *env, int id))
 Check function pointer whitelist for module init call values.
int fptr_whitelist_mod_deinit (void(*fptr)(struct module_env *env, int id))
 Check function pointer whitelist for module deinit call values.
int fptr_whitelist_mod_operate (void(*fptr)(struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound))
 Check function pointer whitelist for module operate call values.
int fptr_whitelist_mod_inform_super (void(*fptr)(struct module_qstate *qstate, int id, struct module_qstate *super))
 Check function pointer whitelist for module inform_super call values.
int fptr_whitelist_mod_clear (void(*fptr)(struct module_qstate *qstate, int id))
 Check function pointer whitelist for module clear call values.
int fptr_whitelist_mod_get_mem (size_t(*fptr)(struct module_env *env, int id))
 Check function pointer whitelist for module get_mem call values.
int fptr_whitelist_alloc_cleanup (void(*fptr)(void *))
 Check function pointer whitelist for alloc clear on id overflow call values.
int fptr_whitelist_tube_listen (tube_callback_t *fptr)
 Check function pointer whitelist for tube listen handler values.
int fptr_whitelist_mesh_cb (mesh_cb_func_t fptr)
 Check function pointer whitelist for mesh state callback values.


Detailed Description

This file contains functions that check function pointers.

The functions contain a whitelist of known good callback values. Any other values lead to an error.

Due to the listing nature, this file violates all the modularization boundaries in the program.


Function Documentation

int fptr_whitelist_comm_point ( comm_point_callback_t fptr  ) 

Check function pointer whitelist for comm_point callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References outnet_tcp_cb(), outnet_udp_cb(), tube_handle_listen(), and worker_handle_request().

Referenced by comm_point_local_handle_callback(), comm_point_tcp_handle_callback(), comm_point_udp_ancil_callback(), comm_point_udp_callback(), and tcp_callback_reader().

int fptr_whitelist_comm_point_raw ( comm_point_callback_t fptr  ) 

Check function pointer whitelist for raw comm_point callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References remote_accept_callback(), remote_control_callback(), tube_handle_listen(), and tube_handle_write().

Referenced by comm_point_raw_handle_callback().

int fptr_whitelist_comm_timer ( void(*)(void *)  fptr  ) 

Check function pointer whitelist for comm_timer callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References outnet_tcptimer(), pending_udp_timer_cb(), worker_stat_timer_cb(), and wsvc_cron_cb().

Referenced by comm_timer_callback().

int fptr_whitelist_comm_signal ( void(*)(int, void *)  fptr  ) 

Check function pointer whitelist for comm_signal callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References worker_sighandler().

Referenced by comm_signal_callback().

int fptr_whitelist_event ( void(*)(int, short, void *)  fptr  ) 

Check function pointer whitelist for event structure callback values.

This is not called by libevent itself, but checked by netevent.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References comm_point_local_handle_callback(), comm_point_raw_handle_callback(), comm_point_tcp_accept_callback(), comm_point_tcp_handle_callback(), comm_point_udp_ancil_callback(), comm_point_udp_callback(), comm_signal_callback(), comm_timer_callback(), tube_handle_signal(), and worker_win_stop_cb().

int fptr_whitelist_pending_udp ( comm_point_callback_t fptr  ) 

Check function pointer whitelist for pending udp callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References libworker_handle_reply(), serviced_udp_callback(), and worker_handle_reply().

Referenced by outnet_send_wait_udp(), outnet_udp_cb(), and pending_udp_timer_cb().

int fptr_whitelist_pending_tcp ( comm_point_callback_t fptr  ) 

Check function pointer whitelist for pending tcp callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References libworker_handle_reply(), serviced_tcp_callback(), and worker_handle_reply().

Referenced by outnet_tcp_cb(), outnet_tcptimer(), and use_free_buffer().

int fptr_whitelist_serviced_query ( comm_point_callback_t fptr  ) 

Check function pointer whitelist for serviced query callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References libworker_handle_service_reply(), and worker_handle_service_reply().

Referenced by serviced_callbacks().

int fptr_whitelist_rbtree_cmp ( int(*)(const void *, const void *)  fptr  ) 

int fptr_whitelist_hash_sizefunc ( lruhash_sizefunc_t  fptr  ) 

Check function pointer whitelist for lruhash sizefunc callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References infra_host_sizefunc(), infra_lame_sizefunc(), key_entry_sizefunc(), msgreply_sizefunc(), test_slabhash_sizefunc(), and ub_rrset_sizefunc().

Referenced by lruhash_insert(), and lruhash_remove().

int fptr_whitelist_hash_compfunc ( lruhash_compfunc_t  fptr  ) 

Check function pointer whitelist for lruhash compfunc callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References infra_host_compfunc(), infra_lame_compfunc(), key_entry_compfunc(), query_info_compare(), test_slabhash_compfunc(), and ub_rrset_compare().

Referenced by lruhash_insert(), lruhash_lookup(), and lruhash_remove().

int fptr_whitelist_hash_delkeyfunc ( lruhash_delkeyfunc_t  fptr  ) 

Check function pointer whitelist for lruhash delkeyfunc callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References infra_host_delkeyfunc(), infra_lame_delkeyfunc(), key_entry_delkeyfunc(), query_entry_delete(), test_slabhash_delkey(), and ub_rrset_key_delete().

Referenced by lruhash_clear(), lruhash_insert(), and lruhash_remove().

int fptr_whitelist_hash_deldatafunc ( lruhash_deldatafunc_t  fptr  ) 

Check function pointer whitelist for lruhash deldata callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References infra_host_deldatafunc(), infra_lame_deldatafunc(), key_entry_deldatafunc(), reply_info_delete(), rrset_data_delete(), and test_slabhash_deldata().

Referenced by lruhash_clear(), lruhash_insert(), and lruhash_remove().

int fptr_whitelist_hash_markdelfunc ( lruhash_markdelfunc_t  fptr  ) 

Check function pointer whitelist for lruhash markdel callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References rrset_markdel().

Referenced by lruhash_clear(), lruhash_insert(), and lruhash_remove().

int fptr_whitelist_modenv_send_packet ( int(*)(ldns_buffer *pkt, struct sockaddr_storage *addr, socklen_t addrlen, int timeout, struct module_qstate *q, int use_tcp)  fptr  ) 

Check function pointer whitelist for module_env send_packet callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References libworker_send_packet(), and worker_send_packet().

int fptr_whitelist_modenv_send_query ( struct outbound_entry *(*)(uint8_t *qname, size_t qnamelen, uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec, struct sockaddr_storage *addr, socklen_t addrlen, struct module_qstate *q)  fptr  ) 

Check function pointer whitelist for module_env send_query callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References libworker_send_query(), and worker_send_query().

Referenced by processQueryTargets().

int fptr_whitelist_modenv_detach_subs ( void(*)(struct module_qstate *qstate)  fptr  ) 

Check function pointer whitelist for module_env detach_subs callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References mesh_detach_subs().

Referenced by processQueryResponse().

int fptr_whitelist_modenv_attach_sub ( int(*)(struct module_qstate *qstate, struct query_info *qinfo, uint16_t qflags, int prime, struct module_qstate **newq)  fptr  ) 

Check function pointer whitelist for module_env attach_sub callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References mesh_attach_sub().

Referenced by generate_request(), and generate_sub_request().

int fptr_whitelist_modenv_kill_sub ( void(*)(struct module_qstate *newq)  fptr  ) 

Check function pointer whitelist for module_env kill_sub callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References mesh_state_delete().

Referenced by generate_ns_check(), generate_sub_request(), prime_root(), and prime_stub().

int fptr_whitelist_modenv_detect_cycle ( int(*)(struct module_qstate *qstate, struct query_info *qinfo, uint16_t flags, int prime)  fptr  ) 

Check function pointer whitelist for module_env detect_cycle callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References mesh_detect_cycle().

Referenced by causes_cycle(), and generate_sub_request().

int fptr_whitelist_mod_init ( int(*)(struct module_env *env, int id)  fptr  ) 

Check function pointer whitelist for module init call values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References iter_init(), pythonmod_init(), and val_init().

Referenced by modstack_setup().

int fptr_whitelist_mod_deinit ( void(*)(struct module_env *env, int id)  fptr  ) 

Check function pointer whitelist for module deinit call values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References iter_deinit(), pythonmod_deinit(), and val_deinit().

Referenced by modstack_desetup().

int fptr_whitelist_mod_operate ( void(*)(struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound)  fptr  ) 

Check function pointer whitelist for module operate call values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References iter_operate(), pythonmod_operate(), and val_operate().

Referenced by mesh_run().

int fptr_whitelist_mod_inform_super ( void(*)(struct module_qstate *qstate, int id, struct module_qstate *super)  fptr  ) 

Check function pointer whitelist for module inform_super call values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References iter_inform_super(), pythonmod_inform_super(), and val_inform_super().

Referenced by mesh_walk_supers().

int fptr_whitelist_mod_clear ( void(*)(struct module_qstate *qstate, int id)  fptr  ) 

Check function pointer whitelist for module clear call values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References iter_clear(), pythonmod_clear(), and val_clear().

Referenced by mesh_state_cleanup().

int fptr_whitelist_mod_get_mem ( size_t(*)(struct module_env *env, int id)  fptr  ) 

Check function pointer whitelist for module get_mem call values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References iter_get_mem(), pythonmod_get_mem(), and val_get_mem().

Referenced by print_mem(), and worker_mem_report().

int fptr_whitelist_alloc_cleanup ( void(*)(void *)  fptr  ) 

Check function pointer whitelist for alloc clear on id overflow call values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References worker_alloc_cleanup().

Referenced by alloc_get_id(), and outnet_udp_cb().

int fptr_whitelist_tube_listen ( tube_callback_t fptr  ) 

Check function pointer whitelist for tube listen handler values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References libworker_handle_control_cmd(), and worker_handle_control_cmd().

Referenced by tube_handle_listen().

int fptr_whitelist_mesh_cb ( mesh_cb_func_t  fptr  ) 

Check function pointer whitelist for mesh state callback values.

Parameters:
fptr,: function pointer to check.
Returns:
false if not in whitelist.

References libworker_bg_done_cb(), and libworker_fg_done_cb().

Referenced by mesh_do_callback(), mesh_state_add_cb(), and mesh_state_cleanup().


Generated on Tue Oct 13 06:46:32 2009 for unbound by  doxygen 1.5.9